Autor Zpráva
xlifer
Profil
Proč nelze použít include nebo require před hlavičkou, lze situaci nějak řešit, když před definici hlavičky chci přihrát ješte provedení nějakých externích funkcí.

<?
...
include "soubor.php"; // nebo require ?
...
Header("...");
Header("...");
echo $vystup_skriptu;
?>
DoubleThink
Profil *
Viz FAQ - headers already sent
candiess
Profil
za header() stejnak nesmí bejt žáden výstup, v tomto případě ani echo"".. :))
panther
Profil
candiess:
za header() stejnak nesmí bejt žáden výstup
a na to jsi přišel jak?
candiess
Profil
panther:
někde jsem to četl, ale teoreticky by tam neměl být, když funkce header odesílá hlavičku znova na HTTP, takže každé echo zatím je zbytečne...ne snad?
jenikkozak
Profil
candiess:
ne snad
Ne. Vzhledem k tomu, že hlavičky se posílají s každou odpovědí, nebylo by možné odeslat vůbec žádný obsah, kdyby za hlavičkami nemohl být výstup. :-)
Před hlavičkami žádný být nemůže.
candiess
Profil
no jo vlastně, omlouvám se, neska si to všechno pletu..:(
xlifer
Profil
Takže rozumím, že před hlavičkou nesmí být žádný výstup. A když budu chtít např. přihrát spojení do databáze, tak to taky nelze? To je přece nepohodlné psat všechno zvnou v rámci skriptu, když to už někde je napsané.

<?
Header("...");
Header("...");
include "spojeni_do_databaze.php"; // ?? nebo mám vložit před header s pomocí require_once ??
... vyber dat z db a nasledny vystup pres echo ...
?>


V některých příkladech jsem právě viděl, že je možné použít require_once místo include?
xmark
Profil
include neznamená žádný výstup směrem do prohlížeče. Můžeš to mít jaks to napsal, nebo může být ten include nad těmi headery, je to jedno.
edit: include sám o sobě nic do prohlížeče nepošle, includovaný soubor to samozřejmě dělat může a pak by to bylo špatně, ale to v případě připojení k databázi nepředpokládám.
xlifer
Profil
A FWrite je brán taky jako výstup?
xmark
Profil
http://cz.php.net/manual/en/function.fwrite.php nepoužívám, ale nevidím tam nic, co by naznačovalo, že by to generovalo něco pro prohlížeč.
Do prohlížeče odchází data pomocí echo, print nebo vložením html do php souboru. Jestli jsem na něco zapomněl, díky za doplnění.
DJ Miky
Profil
Častou příčinou je i BOM vkládaný do souborů v UTF-8, viz zdejší FAQ. Na rozdíl od echa není BOM moc vidět, takže je trochu zákeřnější...
xlifer
Profil
A jaký ASCII kód má BOM znak?

Pokud v editoru zobrazím souboru v HEX editoru, tak lze jednoduše poznat takový první znak bez problému.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0