Quick start – forbidden
- aha
- Člen | 9
Ahoj,
v PHP a MySQL začínám, tak prosím o shovívavost.
Pracuji dle Quick startu – návodu a při zobrazení index.php
v prohlížeči mi laděnka hází chybu:
Line 110: throw new InvalidStateException(„Cannot send header after HTTP headers have been sent“.
Když otevřu šablonu Default.default.phtml, tak dostanu hlášku:
Forbidden
You don't have permission to access /prvni
nette/app/templates/Default.default.phtml on this server.
Stáhnul jsem si zip kódy a porovnal se svými a žádné rozdíly tam
nevidím.
Ty se přitom zobrazují správně.
Poradí mi někdo kde dělám chybu?
Předem dík
P.S. Když v adresáři app vytvořím svůj soubor
<?php
echo "Ahoj";
?>
tak mi taky dá Forbidden…viz. výše
- Ondřej Mirtes
- Člen | 1536
To, že není /app/ přístupná z venku je správně. Je to díky
deny from all
v .htaccess.
Jak má vypadat složková strukture najdeš tady: https://doc.nette.org/…ry-structure –
máš složku s nette aplikací s třemi podsložkami: app/
(PHP
zdrojáky a .phtml šablony), root/
(nebo libovolný jiný název,
který vyjadřuje, že Apache smí jen sem) a libs/
(knihovny,
např. Nette, dibi a Texy).
Jinak tvůj error nevím čím je, chtělo by to asi postnout celou call stack…
- aha
- Člen | 9
Dík za odpověď, akorát to >postnout celou callstack< nemá IMHO moc
logiku, protože vše dělám dle návodu (tím pádem mám v pořádku
adresářovou strukturu) i umístění a názvy souborů (kontrolováno –
důkladně). Soubory (obsah), kopíruju z quick startu. Vše by tedy mělo
fungovat tak, jak je to v QS popsáno. A navíc, nevím co to je
>postnout…atd.<
:-)))
Editoval aha (27. 6. 2009 22:09)
- aha
- Člen | 9
Takže udělal jsem si nový projekt z adresáře (v PSPadu ze staženého
a rozbaleného DataGrid). Teď už to funguje až do chvíle kdy se
v presenteru připojuje databáze. Tam laděnka dává tuto chybu:
DefaultPresenter::require_once() [function.require]: Failed opening required
‚C:\www\DataGrid.part1\document_root/../libs/dibi/dibi.php‘
(include_path=‚.;C:\Program Files\VertrigoServ\Smarty‘)
a to nevím kde opravit. Asi jsem na ten tut moc velká lama.
- Ondřej Mirtes
- Člen | 1536
Prostě ulož tu stránku s exception a někam jí uploadni :) Případně by mohl stačit screenshot.
Ad dibi – očividně k němu vede špatná cesta, nebo ho tam nemáš. Máš v adresáři libs/dibi/dibi.php? Máš správně nadeklarovanou LIBS_DIR v index.php?
- Honza Kuchař
- Člen | 1662
Ad: Cannot send header after HTTP headers have been sent
je
nejspíš způsobeno bílím znakem před začátkem souboru. Velmi
nepříjemná záležitost. (tzv. UTF8 BOM – 3 uvozovací znaky, které PHP
neignoruje → odešle výstup a ty si potom nenastavíš žádné hlavičky)
Tady na fóru jsem posílal jednou krátký skript na odstranění BOMu ze
začátku souboru.
//EDIT: ten skript: https://forum.nette.org/…already-sent?…
Editoval honzakuchar (27. 6. 2009 23:16)