zase hlavičky

Warning: Cannot add header information - headers already sent

Pokaždé když použiji header na konci skriptu hlásí tuto chybu. Samotný skript, ale nic na výstup neposílá (žádné echo(), cookie atp...). Na wz.cz jsem to zkoušel a stejný skript bez problémů funguje. Jde o jednoduchý skript zápisu příspěvku do zdrojového souboru návštěvní knihy.

Co s tím? Existuje nějaký jiný způsob jak přesměrovat na konci skriptu? Co poslat header na začátku a nastavit ignore_user_abort(), jde to? Nebo META REFRESH? Co když to má někdo vypnuté?
bacha i na bily znaky pred php blokem etc.

imho je nejlepsi pouzivat output buffering...
<? jsou první znaky kterými to začíná, nic před nima není. output buffering? jdu se podívat do manuálu, s tím jsem zatím nedělal.
Stipe - neincluduješ ten skript do jiného souboru, ve kterém už html výstupy jsou?
Vím že je to hodně trapná rada, ale podobné věci se stát mohou a vůbec si to neuvědomíš ;-)
nepomohlo to, udělal jsem to takhle:

<?
ob_start();
...
...
...
Header('Location: http://'. $_SERVER['HTTP_HOST'] . '/index.php');
ob_end_flush();
?>

když místo ob_end_flush() dám ob_end_clean() neodešle se nic ani ten header. nefunguje ani:

<?
ob_start();
...
...
...
ob_end_clean()
Header('Location: http://'. $_SERVER['HTTP_HOST'] . '/index.php');
?>
Tom: ne volám ho odesláním formuláře pomocí action="skript.php" na konci skript.php je header původní stránky. skript.php nemá žádný výstup manipuluje jenom se soubory pomocí FOpen() a FWrite(). Obsahuje Die("error") ke kterému ale nedojde (několikrát v podmínce).
Opakuji, že to není na WZ, na WZ ten skript bez problémů odesílá hlavičku i bez použití output buffering. Reklama na tom serveru není. Je možné, že je tam něco blbě nastavené a odesílají se nějaké výstupy? Já ani nevím co to je za server. Dělám pro ně stránky a nikdo mi kontakt na správce nedal. Jenom jsem si hodil phpinfo:

http://www.alinterier.cz/test/phpinfo.php
to je nejake podivne... videl bych to tak ze chyba je kdesi jinde...

bufferovani by nemelo mit na odeslani hlavicek vliv, zajistuje jen neodeslani nechtenych znaku...

standardne se to dela stylem
Header(...);
exit;

jo pokud jsi delal v editoru s UTF tak tam mohou byt bile znaky tohoto kodovani (na zacatku souboru)
Je to v PsPadu uloženo v UTF-8 , ale na WZ to funguje , to přece není možné. Celý skript (konkrétně pro upload obrázku, ale s tim header je problém i v jiných) jsem dal k sobě, můžete do něj kouknout na:

http://avar.borec.cz/test/skript.txt
Mě se to číst nechce, ale zkus si prolídnout, co to vlastně genenruje. S úspě chem jsem vyzkoušel výstup na konzoli. Buť php <soubor> nebo telnetem.
Tak jsem se dovtípil, kde ty stránky jsou hostovány a obrátil jsem se na zákaznickou podporu s dotazem. Promptně mi byla odeslána tato odpověď:

*
Dobry den,

administartor vam udelal upravu v nekolika znacic a melo by to fungovat, problem byl v tom , ze v nekterych prohlizecich se nektere znaky nezobrazi.(presneji odmazal tri znaky)

S pranim pekneho dne

zakaznicka podpora
*

Nefunguje to stále a mě se navíc zdá, že administrátor jaksi nepochopil problém. Taky vám to tak přijde?
<HTML>strip: co ze ten admin udelal ????
nebylo by lepsi poradit:
PSPad->nastaveni->nastaveni programu->Ident. byty v kodovani UTF-8 = vypnout
....a soubory znovu ulozit

ale nerad do toho nekomu kecam, kdo vi jak jsi mu ten problem popsal ;)</HTML>
Pro Richarda - plné znění emailu s dotazem:


Dobrý den, mám dotaz pro podporu:
Dělám stránky pro www.alinterier.cz , kteří pravděpodobně hostují u vás (zadavatel mi to ale neřekl, usoudil jsem tak podle IP adresy 81.95.96.124 obsažené v SERVER_ADDR používaného PHP, takže doufám že to tak je).
Problém spočívá v použití skriptu http://avar.borec.cz/test/upload.php volaného z formuláře: http://avar.borec.cz/test/index.php?id=gallery

<?
...
...
...
Header('Location: http://'. $_SERVER['HTTP_HOST'] . '/test/index.php?id=gallery');
?>

následuje chybové hlášení:

Warning: Cannot add header information - headers already sent

Nicméně skript žádný výstup během své činosti neposílá. Teda alespoň to co jsem do něj napsal, by výstup IMHO posílat nemělo. Zkoušel jsem jej na svém osobním hostingu a tam odesílá hlavičku správně. Můžete mi poradit, kde je chyba? Děkuji.


Jinak to asi fakt bude tím kódováním. Zkusím to jak mi radíš, mě jenom mátlo, že na WZ to funguje i s těmi Ident. byty (abych se přiznal, nevím co je to za byty:o)
<HTML>to by jsi zjistil nejsnadneji tak, ze by js ito zkusil v jinem kodovani napr. iso</HTML>
Měls pravdu, bylo to tím kódováním. Uložil jsem to v PsPadu s vypnutými ident. byty a už to normálně hlavičku pošle. Takže díky za podporu :o)
Abych zase neprávem tu jejich podporu nepomluvil, já jsem se spletl v adrese toho skriptu a poslal jsem jim tu místní na wz.cz místo tu jejich alinterier.cz , ale lišilo se to jenom v té doméně. No a oni těma přebytečnýma znakama mysleli ty ident. byty na začátku. Nicméně pokud by mi to neřekl Richard jak se tam ty znaky vzali, tak bych to udělal příště stejně a zase by to bylo v háji.
Tu je čo pomohlo mne:
.htaccess = "PHP_FLAG output_buffering on"