Autor Zpráva
pcmanik
Profil
Mam velmi zvlastny problem. Mam index.php v ktorom je kod, ktory som orezal

<table id="lista_vrchna">
  <tr>
    <td width="1%">...</td>
    <td width="110">...</td>
  </tr> // 112. riadok
</table>
<div id="jadro">
<?php // 115. riadok
switch ($p) {
    case 'odhlasit': odhlasit(); break;
    default: include 'novinky.php';
}
?>

Vyhadzuje mi to chybu, ze headeri boli odoslane na 115. riadku. Pritom tam nema byt co odoslane. Ak zmazem celu tu tabulku, tak to normalne funguje.
Dokonca este zvlastnejsie je ze ak napisem na 112. riadok <?php odhlasit(); ?></tr> Tak to prebehne bez problemov, ale akonahle napisem </tr><?php odhlasit(); ?> Uz to pise headers already sent...

Nechapem to a neviem si uz pomoct. Doteraz to nerobilo, zrazu to zacalo hadzat tuto chybu.
Dakujem za kazdu radu.

Edit: Podla commitov som prisiel na to, kde je problem, ale nechapem tomu. Ak tam ten riadok je, nejde to, ale ak ho zmazem, funguje to normalne, ako je to mozne?

    <li><a href="index.php?pg=novinky">Menu</a>
        <ul>
            <li><a href="index.php?pg=faq">FAQ</a></li>
            <li><a href="index.php?pg=pravidla">Pravidlá</a></li>
            <li><a href="index.php?pg=nahlasit">Nahlásiť užívateľa</a></li> // Ak sa zmaze tento riadok, nehadze to ziadny error
        </ul>
    </li>

Edit2: Staci, aby som zmazal kusok html kodu, cca. 20 znakov, je jedno uplne akeho a uz je to bez problemov. Jednoducho po prekroceni urciteho poctu bitov to zacne hadzat hlasku.
Cannot modify header information - headers already sent by (output started at /www/sites/7/site2207/public_html/hra/index.php:115)
mimochodec
Profil
pcmanik:
Píše se to sent a řekl bych, že to tady bude jedna z nejhledanějších frází. Pohledej taky. Jde o to, že se pravděpodobně snažíš poslat nějakou hlavičku (možná v tom odhlasit()?) až potom, cos začal vytvářet obsah stránky (ať už echem, nebo vloženým html)
pcmanik
Profil
mimochodec:
Myslim ze som problem dost popisal, programujem uz dost dlho, ale toto je ina zvlastnost.

Ide o to ze staci, aby som zmazal kusok html kodu, povedzme 20 znakov, je jedno uplne akeho. A uz je to bez problemov. Jednoducho po prekroceni urciteho poctu bitov to zacne hadzat hlasku.
Cannot modify header information - headers already sent by (output started at /www/sites/7/site2207/public_html/hra/index.php:115)
Alphard
Profil
pcmanik:
Myslim ze som problem dost popisal
Nepopsal. Nepotřebujeme chybu překládat, ale její přesné znění včeta místa kódu, kde je volaná.

Popsané chování budu zřejmě způsobeno výstupní bufferem.
pcmanik
Profil
Alphard:
Neviem uz chybu lepsie opisat, napisal som vsetky svoje postrehy.

V skratke, ak zmazem cca. 20 html znakov je uplne jedno akych, ci z menu, alebo z head. Chyba sa prestane zobrazovat. Ide o to, ze podla mojho usudku po prekroceni urciteho poctu bitov to zacne hadzat ten error a neviem si vysvetlit, cim to je.

Doteraz vsetko fungovalo, akonahle som pridal jednu polozku do menu zacalo to hadzat tu chybu. Staci ked tu polozku v menu zmazem, resp. zmazem hociaky kod v html, teda viac ako cca. 20 znakov a chyba zmizne.
Alphard
Profil
[#5] pcmanik
Vždyť vám píši, že to pravděpodobně dělá výstupní buffer.
Upravte to tak, aby nebyl před posíláním hlaviček žádný výstup, nebo explicitně spusťte bufferování.
pcmanik
Profil
Alphard:
Ano da sa to tak upravit, ale preco to funguje len do urciteho poctu bitov a potom to zacne hadzat chybu? Ide mi o pochopenie preco sa to tak sprava.
Mimochodom output buffer tam nemam.
Davex
Profil
pcmanik:
preco to funguje len do urciteho poctu bitov a potom to zacne hadzat chybu?
Protože výstupní buffer je nějak velký, a když se naplní, tak se data odešlou.

Mimochodom output buffer tam nemam.
Může být zapnutý v konfigurací PHP output_buffering = 4096.
pcmanik
Profil
Davex:
Ano je to tak, je nastavany na 4096. Dakujem za objasnenie chyby, budem si davat na nu pozor.

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: