Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
#1 · Zasláno: 9. 2. 2011, 12:04:08 · Upravil/a: xlifer
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 * |
#2 · Zasláno: 9. 2. 2011, 12:10:42
|
||
candiess Profil |
#3 · Zasláno: 9. 2. 2011, 12:47:42
za header() stejnak nesmí bejt žáden výstup, v tomto případě ani echo"".. :))
|
||
panther Profil |
#4 · Zasláno: 9. 2. 2011, 12:50:10
candiess:
„za header() stejnak nesmí bejt žáden výstup“ a na to jsi přišel jak? |
||
candiess Profil |
#5 · Zasláno: 9. 2. 2011, 12:55:04
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 |
#6 · Zasláno: 9. 2. 2011, 13:14:46
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 |
#7 · Zasláno: 9. 2. 2011, 13:17:26
no jo vlastně, omlouvám se, neska si to všechno pletu..:(
|
||
xlifer Profil |
#8 · Zasláno: 9. 2. 2011, 15:43:47 · Upravil/a: xlifer
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 |
#9 · Zasláno: 9. 2. 2011, 15:50:57 · Upravil/a: xmark
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 |
#10 · Zasláno: 9. 2. 2011, 15:59:58
A FWrite je brán taky jako výstup?
|
||
xmark Profil |
#11 · Zasláno: 9. 2. 2011, 16:03:08
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 |
#12 · Zasláno: 9. 2. 2011, 17:50:34
Č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 |
#13 · Zasláno: 9. 2. 2011, 19:43:37
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. |
||
Časová prodleva: 13 let
|
0