Jump to content
php.lv forumi

headers already sent


peehaa

Recommended Posts

kā jau virsrakstā minēts - problēma ar headers already sent. ja index.php encoding ir ANSI, tad nekādu kļūdu nav, bet kā pārliek uz uz UTF-8 tā headers already sent. o_O

index.php sākumā un beigās [ pirms html koda ] ir ob_start(); un ob_end_flush();, kā arī visi inklūdojamie faili ir ar UTF-8 encoding`u. itkā visam jābūt pareizi. o_O

Link to comment
Share on other sites

  • 1 month later...

lai netaisītu jaunu tēmu, iepostošu šeit.

 

vēlreiz esmu saskāries ar Headers already sent, bet šoreiz esmu izmēģinājis visus man zināmos risinājumus, bet nekas neder.

ir index.php, kurā ir visas izvēlnes un citas lietas, kā mājaslapā un ir _fullnews.php, kas attēlo konkrētu ziņu ierakstu, kura id tiek norādīts urlī.

iekš _fullnews.php ir pārbaude, vai attiecīgais ieraksts datubāzē eksistē :

  if(mysql_num_rows($res1) < 1) {
Header("Location: http://127.0.0.1/fk/");
exit();
 } else {
// ieraksts un komentāri tiek izvadīti
 }

ko es mēģināju?

index.php pirms <html> taga ielikt ob_start(); un pēc </html> taga ielikt ob_end_flush();.

php.ini output buffering norādīju kā On.

saglabāju abus failus bez BOM simboliem.

 

nelīdz! :(

Link to comment
Share on other sites

A šitais izpildās bez kļūdām: echo mysql_num_rows($res1); ??

 

ja piemēram failo uz mysql_num_rows .. teiksim ar to ka $res1 is not valid MySQL resultset tālāk header() vairs nevar izpildīties (ja protams Notices nav atslēgtas).. Protams jāliek pirms visiem html tagiem..

 

 

pamēģini:

 

if(@mysql_num_rows($res1) < 1) {

..

 

 

Vai vispār izkomentēt laukā to // header(); un ielikt tā vietā die(); un pavērot vai tiešām neizvadās kāds kods/notice

Link to comment
Share on other sites

vēl apsties vai Tev nav kādas includes, kur aiz ?> ir `speisi` vai `enteri`? lai gan pofigs, ja `php.ini output buffering norādīju kā On` (pamainīji ne to ini?)

 

kas no tiek, ja header(bla bla) izmanto pavisam tukšā failā, tajā pašā folderī?

Link to comment
Share on other sites

kā jau virsrakstā minēts - problēma ar headers already sent. ja index.php encoding ir ANSI, tad nekādu kļūdu nav,

panjem NOTEPAD++ ielaadee to savu kodu UTF-8 formaataa ...

augsaa: FORMAT ==> ENCODE in ANSI ...

FILE ==> SAVE ...

UN TAS IR VISS !!!

nebaidies ka burtu vietaa ieraudziisi kjeburus ;) vinsh reaali neko neizmaina tik attelooshanas veidu + novaac tos BOM simbolus....

 

P.S. notepad++ meetaajas ieksh download.Times .....

kautkur pie text apstraades tuuljiem....

Link to comment
Share on other sites

Nu ja neviens neuzraksta FAQ tad īsti neredzu iemeslu kapēc lai neuzdotu (it īpaši ja problēma ir faktiski neredzama.. tādu BOM diezvai kāds hexā pētīs).

 

Visādā ziņā tas ir krietni sakarīgāks jautājums nekā tie - "iedodiet man", "uzliku.. nekā nesaprotu" utjprj.. un vienmēr ir iespēja ignorēt konkrēto topicu un neatbildēt..

 

 

Mētājot pirkstus un izmetot tikai piezīmes par to ka tas "kaut kur googlē ir aprakstīts" faktiski neko nedod (standarta programmētāja atbilde - ir principā pareiza, taču neko neizsaka). Bez tam palasot kautvai http://bugs.php.net/bug.php?id=22108 fakts nav viennozīmīgs..

Link to comment
Share on other sites

vaina bija kautkādā kreisajā, no kreisajiem saitiem novilktā php. tas nereāģēja uz php.ini izmaiņām, novilku no php.net, sakonfigurēju un aidā - aizgāja.

bom bija aizvākti. :)

// NĒ //

likās, ka viss ir k, pēc dažiem php restartiem viss bija kārtībā, bet mysql serveri nobeidzis biju. tā nu restartēju datoru, mysql iet, bet headers already sent vēljoprojām. tulīt iziešu cauri visam, ko iepriekš darīju.

ehh, viss kārtībā.

Edited by peehaa
Link to comment
Share on other sites

×
×
  • Create New...