Autor Zpráva
Karel Kobyla
Profil *
pouzivam na sve strance sessions a na kazde podstrance co mam zacinam prikazem session_start(); abych se mohl dostavak k promennym. par dnu to vsem chodilo tak jak melo, ale dnes mi prvni clovek napsal. ze mu to vyhodilo hlasku, kterou napisu nakonec a to i v ruznych prohlizecich, tak nevim jestli je chyba v tom ze pokazde volam session_start() nebo na ci strane chyba je. Diky

chyba, ktera vede k neudrzeni promennych v sessions - odhlaseni:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/pravidla.php:10) in /home/pravidla.php on line 31

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/pravidla.php:10) in /home/pravidla.php on line 31
djlj
Profil
Karel Kobyla
Před session_start(); máš asi už nějaký HTML výstup..
Anonymní
Profil *
Ani nemusis mat vystup, staci ak mas enter po znakoch
?>
v nejakom includovanom subore
jozob
Profil
Anonymní
"Ani nemusis mat vystup, staci ak mas enter po znakoch"
To je výstup.

Karel Kobyla
Pokiaľ potrebuješ mať výstup pred funkciou pracujúcou s hlavičkami (napr. session_start), doporučujem riadenie výstupu. Pokiaľ je výstup nepotrebný, jednoducho ho zmaž (napríklad spomenuté biele znaky), pokiaľ je to napríklad html, presuň ho pod funkcie pracujúce s hlavičkami.

Problém spočíva v tom, že ak zahájiš výstup (ľubovoľný znak ktorý sa vypíše na stránku - vrátane bielych znakov a HTML) odošlú sa hlavičky (headery - preto tá chybová hláška). Preto zlyhajú akékoľvek funkcie, ktoré pracujú s hlavičkami, pokiaľ sú hlavičky už odoslané. Toto rieši riadenie výstupu - výstup sa hneď neposiela, ukladá sa do cache, hlavičky sa neodosieľajú, pretože výstup nenastáva. Nakoniec výstup odošleš manuálne, čím sa odošlú aj hlavičky.


(Zdatnejší kolegovia - opravte akékoľvek nepresnosti)
Toto téma je uzamčeno. Odpověď nelze zaslat.