Autor Zpráva
TomasJ
Profil
Zdravím,
nevím proč, ale když na webu od hostitele Webzdarma nastavím cookie, dám uplynutí na time()*2, tak mi stejně nastaví cookie jen na dobu platnosti: "Na konci relace". Nebo třeba když chci cookie zničit (nastavením času který již byl), vypíše mi web tohle:
Warning: Cannot modify header information - headers already sent by (output started at /3w/wz.cz/*/********/pages/index.php:39) in /3w/wz.cz/*/********/pages/obsah/admin.php on line 19
Tentýž kód jsem měl i na webu od hostitele Endora a vše šlo v pohodě. Nevíte čím to může být a jak tento problém odstranit? Může to být způsobeno tím, že na začátku stránky mám session_start(); ? Děkuji.
Alphard
Profil
TomasJ:
Může to být způsobeno tím, že na začátku stránky mám session_start();
Nemělo by.

Warning: Cannot modify header information - headers already sent by
Po milionté stejný problém. Řešení naleznete hledáním nebo ve FAQ.
Na jiném hostingu to fungovalo díky jinak nastavenému výstupnímu bufferu.

dám uplynutí na time()*2
Timestamp má své meze, zkuste přičíst nějakou rozumnou hodnotu.
TomasJ
Profil
Alphard:
Takže děkuji za to řešení timestampu a jak jsem se dočetl ve FAQ tak to znamená že veškerá cookies musím nastavit ještě před obsahem? tj. v HEAD nebo před DOCTYPEm?
Alphard
Profil
TomasJ:
tak to znamená že veškerá cookies musím nastavit ještě před obsahem? tj. v HEAD nebo před DOCTYPEm?
Ano. Nejde jen o cookies, veškeré hlavičky (i session_start()) musí být před jakýmkoliv výstupem.
TomasJ
Profil
Alphard:
Ovšem, to abych přidělával kvůli cookies další podmínky. Ale asi se na to vykašlu a udělám administrační login jen přes session (takže nikdy nebude trvalé přihlášení). Stejně jsem si teď uvědomil, že existuje funkce v JS, která cookies bez problému nastaví, takže by se dotyčný přihlásil i bez hesla a já nevím jak toto zabezpečit.
Alphard
Profil
TomasJ:
Lze to obejít bufferovacími funkcemi. Podobně, jako to fungovalo na Endoře.

MVC aplikace se navrhují tak, že logika je na začátku a šablony se vykreslují až na konec, takže to nebývá problém.

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:

0