Mam skript php ktery je ulozen v kodovani utf-8. Chci zalozit session.
Pouziju funkci session_start(); a v prohlizeci se mi obevy.
Kdyz ten soubor prekoduju do windows-1250 tak to funguje bez problemu.
Warning: session_start(): Cannot send session cookie - headers already
sent by (output started at d:\www\pracak\login.php:1) in
d:\www\pracak\login.php on line 2
Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at d:\www\pracak\login.php:1) in
d:\www\pracak\login.php on line 2
Nevite cim to muze bejt?
Diky.
tipuju, ze to bude tim, ze UTF-8 si na zacatek
souboru dava informaci, ze "je to ono samo",
tedy ze soubor je v UTF-8 encoding
tento netisknutelny znak na zacatku souboru
je poslan klientovi a kdyz se snazis poslat cookie
(coz neni nic jineho nez obyc. hlavicka HTTP protokolu)
tak ze objevi znama hlaska "headers already sent".
Posli prosim zdrojak toho souboru, jinak
se nema cenu o tom bavit.
--op
> Warning: session_start(): Cannot send session cookie - headers already
> sent by (output started at d:\www\pracak\login.php:1) in
> d:\www\pracak\login.php on line 2
>
> Warning: session_start(): Cannot send session cache limiter - headers
> already sent (output started at d:\www\pracak\login.php:1) in
> d:\www\pracak\login.php on line 2
Nejspíš jste použil editor, který na začátek souboru vložil
(neviditelný) znak BOM, který se však do klienta pošle ještě před tím
než session mechanismus posílá cookies. Stačí použít editor, který na
začátek UTF-8 souborů BOM nevkládá. Snad všechny editory kromě Notepadu
to umí.
--
-----------------------------------------------------------------
Jirka Kosek
e-mail: ji...@kosek.cz
http://www.kosek.cz
Michal Mucha
"Jirka Kosek" <ji...@kosek.cz> píąe v diskusním příspěvku
news:400f...@vse470.vse.cz...
Jan Řeľab wrote:
> Warning: session_start(): Cannot send session cookie - headers already
> sent by (output started at d:\www\pracak\login.php:1) in
> d:\www\pracak\login.php on line 2
>
> Warning: session_start(): Cannot send session cache limiter - headers
> already sent (output started at d:\www\pracak\login.php:1) in
> d:\www\pracak\login.php on line 2
Nejspíą jste pouľil editor, který na začátek souboru vloľil
(neviditelný) znak BOM, který se vąak do klienta poąle jeątě před tím
neľ session mechanismus posílá cookies. Stačí pouľít editor, který na
začátek UTF-8 souborů BOM nevkládá. Snad vąechny editory kromě Notepadu
ob_start();
Jarda
"Bzz" <mu...@mail.muni.cz> píąe v diskusním příspěvku
news:Hrxxy...@news.muni.cz...
> Jen¾e, kdy¾ ten znak na zaèátku souboru není, tak u¾ to není korektní
> UTF-8.:-(
To není pravda. BOM je znak jako každý jiný. Jeho použití má význam
pouze v kódování UTF-16, které má dvě varianty podle pořadí oktetů
(bajtů) ve slově (16bitové hodnotě) a BOM umožňuje jednoznačně
identifikovat variantu UTF-16. V UTF-8 je pořadí oktetů jasně definované
a BOM je zcela zbytečný. Pouze aplikace od MS začaly BOM vkládat i do
UTF-8 a tak se to postupně naučily i ostatní aplikace.