Autor | Zpráva | ||
---|---|---|---|
Snipo Profil |
Ahojte, tak som si povedal, že si skúsim vytvoriť svoj vlastný redakčný systém. Problém je v tom, že ma nenapadá ako urobiť niečo ako šablonovací systém. Moja prvá myšlienka bola takáto no nefunguje mi v tom dosadenie titulku a description.
Pre lepšiu orientáciu kostra projektu: class -Page.php theme css -main.css -install.php -install.php <?php class Page { public $title; public $description; public $type; public function __construct($title, $description, $type) { $this->title = $title; $this->description = $description; $this->type = $type; } public function renderInstall() { include 'theme/install.php'; } } <!DOCTYPE html> <html> <head> <title><?= $page->title ?></title> <meta name="description" content="<?= $page->description ?>"> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="theme/css/main.css"> </head> <body> <div id="container"> <form method="post"> <fieldset> <legend>Admin</legend> </fieldset> <fieldset> <legend>Databáza</legend> </fieldset> <input type="submit" value="Inštalovať"> </form> </div> </body> </html> install.php <?php require 'class/Page.php'; $page = new Page('Inštalácia', 'Inštalácia systému', 'default'); $page->renderInstall(); ?> |
||
Alphard Profil |
#2 · Zasláno: 13. 9. 2014, 18:15:00
Minimálně je v šabloně třeba k proměnným přistupovat přes
$this místo přes $page .
|
||
Snipo Profil |
#3 · Zasláno: 13. 9. 2014, 18:24:45
To som skúšal, a stále nič. Nenapadá ma ako tam dostať tu premennú.
|
||
Alphard Profil |
#4 · Zasláno: 13. 9. 2014, 18:44:58
A jak se to chová? Nějaké chybové hlášky? PHP přistup k neexistující proměnné nepřechází mlčením... Nejčastější potíže s PHP (FAQ) » Zapnutí výpisu všech chyb a varování
|
||
Snipo Profil |
Ak tam mám $page->title tak vyhodí chybu na install.php (ten v theme): Undefined variable a Trying to get property of non-object. Takže predpokladám, že sa tie premenné volajú ešte pred tým, než sa vložia do install.php (normal).
EDIT:// Vyriešil som to tak, že ešte pred volaním tej funkcie som premenné zadefinoval ako $GLOBALS['premenna'] a potom iba dosadil. Je to dobré riešenie? No a ešte by som ale potreboval, žeby sa užívateľ nemohol dostať ku install.php v theme. A to absolútne neviem ako dosiahnuť. |
||
rafej Profil |
#6 · Zasláno: 13. 9. 2014, 20:00:35
Snipo:
> Ak tam mám $page->title tak vyhodí chybu na install.php (ten v theme): Undefined variable a Trying to get property of non-object. Takže predpokladám, že sa tie premenné volajú ešte pred tým, než sa vložia do install.php (normal). Vyhodí chybu, protože metodě renderInstall nepředáváš žádné parametry, takže uvnitř, kde se načítá šablona, nejsou definované. Musíš je předat (v závorce). Snipo: > EDIT:// Vyriešil som to tak, že ešte pred volaním tej funkcie som premenné zadefinoval ako $GLOBALS['premenna'] a potom iba dosadil. Je to dobré riešenie? Není to dobré řešení. Snipo: > No a ešte by som ale potreboval, žeby sa užívateľ nemohol dostať ku install.php v theme. A to absolútne neviem ako dosiahnuť. Pokud bude mít uživatel přístup na server (např. přes FTP), tak to nelze. Pokud myslíš uživatele aplikace, tak lze přístup do adresáře zakázat v souboru .htaccess. |
||
Kubo2 Profil |
#7 · Zasláno: 13. 9. 2014, 20:21:31
Snipo:
„No a ešte by som ale potreboval, žeby sa užívateľ nemohol dostať ku install.php v theme.“ Vytvor súbor theme/.htaccess :
Order deny,allow Deny from all |
||
Snipo Profil |
#8 · Zasláno: 14. 9. 2014, 08:13:51
To síce zaberá ale problém ale potom je problém s css súbormi ktoré sa nenačítajú.
|
||
Kubo2 Profil |
#9 · Zasláno: 14. 9. 2014, 10:32:41
Potom si ich buď daj do iného adresára miesto
theme/ alebo skús toto:
<FilesMatch "\.php$"> Order deny,allow Deny from all </FilesMatch> |
||
Alphard Profil |
#10 · Zasláno: 14. 9. 2014, 10:49:04
Kubo2 [#9]:
Blbost, takhle se vypustí do světa konfigurační soubory (.ini, .config), logy (.log, .txt), info o databázi (.sql) apod. Veřejnou a neveřejnou část webu je třeba v adesářích zcela oddělit. rafej [#6]: Ta chyba říká jen to, co jsem vám řekl již dříve. Měl jste to zkusit po zanesení úprav. |
||
Kubo2 Profil |
#11 · Zasláno: 14. 9. 2014, 21:03:59
Alphard:
„Blbost, takhle se vypustí do světa konfigurační soubory (.ini, .config), logy (.log, .txt), info o databázi (.sql) apod.“ Toho som si samozrejme vedomý, ale nemal som pocit, že by niečo z toho mohol mať Snipo uložené v adresári theme (podľa názvu). Tá druhá veta je ale úplná pravda. |
||
Časová prodleva: 10 let
|
0