Warning: Cannot modify header information
Ahoj,
přestěhoval jsem hosting a na foru (miniBB) mi to po odeslání příspěvku vyhodí hlášku
Warning: Cannot modify header information - headers already sent by (output started at /domains1/lt622300/public/www/forum/post.php:8) in /domains1/lt622300/public/www/forum/index.php on line 213
Na starém hostingu to fungovalo nezměněné.
Došel jsem k názoru, že to dělá odesílání na ono post.php. Dá se to nějak spravit?
Když jsem tam nahrál úplně orig verzi posledního miniBB, neodeslalo se to vůbec.
Nešlo by něco udělat s cokies? KLdyž jsem je dnes ráno vymazal, jednou se to odeslalo dobře (podruhé už ne).
Máš správně nastavena práva pro soubory? Nezapisuje to fórum něco do nějakého souboru?
Já je myslím nastavoval na cmod 777, ale jeste radeji zkontroluji, jestli je to vsude.
v jednom adresáři to u všech nebylo, ale stejně to nepomohlo...
To chmod 777 po odladeni radsej zrus lebo si koledujes o hack (ak tam nechas 777 tak to dokazem aj ja;o)).
tohle dělá vždycky,když kod nenarveš hned za "<?php" případně máš dvě stránky pracující z cookies a někde uprostřed dáš <? include "s dalsi hlavickou.php" ?>
Ale neumim si představit, jak by se to mohlo stát kopírováním - chce to umazat bud ty mezery před <php na prvním řádku a nebo na to existuje příkaz, kterej už si bohužel nepamatuju ...
možná tohle :první řádek :
<?php ob_start();
sem dát prostředek send.php.
posledni řádek:
ob_end_flush(); ?>
nepomohlo...
to by bylo řešeníčko.
Ten kód začíná v indexu, kde je ono header
Žádnou mezeru tam nevidím.
tim kodem jsem myslel to : "ob_end_flush();" sice napamatuju, ale vygooglil jsem to.
No já tam vidim minimálně dva nové řádky.... klidně bych sundal i ten komentář na:
<?php $unset=array...
ted to zacina
a nepomohlo ani
prostě ten header nepřelstím...
V post.php na 8. riadku posielaš prehliadaču nejaký výstup a potom v index.php na 213. riadku chceš poslať nejaké hlavičky - to samozrejme nejde.
Môžeš to vyriešiť buď cez bafrovanie výstupu ako píše Azor, alebo to upraviť tak, aby sa hlavičky posielali vždy na začiatku.
Táto chyba je často spôsobená tým, že inkluduješ PHP skript, ktorý má na konci za ?> ešte nejaký biely znak (medzeru alebo nový riadok). V takom prípade treba znaky za ?> vymazať (prípadne aj s tým ?>).
Ďalší zdroj tejto chyby môže byť BOM hlavička na začiatku textového dokumentu kódovanom v UTF. V takom prípade ju musíš odstrániť napr. otvorením v textovom editore a pri ukladaní zvoliť možnosť uloženia bez BOM hlavičky.
Textové súbory mohol zmeniť nejaký editor alebo možno aj FTP klient pri kopírovaní.
Furt to samé. Soubor post.php
Nepomohlo odstranění všeho za ?>
Já včera zkoušel i nechat pouze ten kousek kódu a nic víc. Napadá mne, jestli nedat ten kousek php do indexu a odesílat to jen na index.
edit://jdu si pro občanku, abych mohl do států EU.
Na výstup posielaš HTML hneď od prvého riadku. To nastavovanie hlavičiek v index.php nemohlo fungovať ani na predchádzajúcom hostingu. Ak to fungovalo, tak iba kvôli tomu, že sa niečo v index.php vyhodnotilo inak a nenastavovalo to žiadne hlavičky.
Ak nechceš veľa prepisovať, tak použi ten output buffering.
Jupííí celý soubor post.php vypadá takto
Pomoohlo až to odstranění ?> na konci (jak psal los). Děkuji 342x za pomoc, jdu na to zlobivé prewiew, co také neposlouchá a místo náhledu dělá nějaké waringy...
los nepsal abys odstranil ukončení php ?>, ale případné mezery za touto značkou... A ty by byly pravděpodobně v includovaném souboru index.php.
Já z toho
pochopil, že kdyžtak i to ?>... Hlavně, že to funguje. Až to někdy někdo (nebo já) bude předělávat, tak mi asi nepřijde na jméno
Pochopil si dobre: ?> nie je na konci skriptu povinné a jeho neuvedením predídeš tomu, že za to niekto/niečo dopíše biele znaky.
No dobře, co řekne los, je svaté...
Neberu slovo losí nadarmo