Autor Zpráva
Pavel Dumbrovský
Profil
Dobrý večer,
prosím Vás, proč když napíšu kód:
if(SetCookie ("neco", "neco", 30000)){echo "ano";}else{echo"ne";}

a vypíše mi to ano, cookies se mi prostě neuloží?
Pavel Dumbrovský
Profil
Vůbec mám dojem, že na serveru mi to přes PHP nikdy nešlo, když jsem se o to pokoušel. Přes javascript to jde.
Radek9
Profil
Pavel Dumbrovský:
To se nedivím, když nastavujete čas na prvního ledna 1970 v 8:20. Dejte před to ještě time()+: (Nebo to můžete úplně vyhodit)
if(setcookie("neco", "neco", time()+30000)){
  echo "ano";
}
else{
  echo"ne";
}
Nebo
if(setcookie("neco", "neco")){
  echo "ano";
}
else{
  echo"ne";
}
AM_
Profil
Ověř si, jestli se skutečně v hlavičce dokumentu pošle cookie (např. firefoxím livehttpheaders). Z PHP manuálu:
If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
Takže problém může být třeba v nastavení prohlížeče, který neakceptuje cookies z určitých zdrojů.
AM_
Profil
Radek9:
To se nedivím, když nastavujete čas na prvního ledna 1970 v 8:20
Jo, téhle chybky jsem si nevšiml :) nicméně i cookies, která "dávno vypršela", by měla vydržet alespoň do zavření prohlížeče.
Pavel Dumbrovský
Profil
Radek9:
Díky, máte pravdu. Když jsem tam ten čas nedal vůbec, tak to taky nevalilo, zřejmě je to povinný atribut... ?
Radek9
Profil
AM:
Neměla. Proto se takto mažou cookies. Pokud se jim nastaví čas do minulosti, přestane existovat.

Pavel Dumbrovský:
Povinný není, může se vynechat. Cookie pak ale vydrží jen do vypnutí prohlížeče.
Pavel Dumbrovský
Profil
Radek9:
Prava pravda, funguje to. Asi jsem předčasně vynervil a nenašel to ve správci cookies.
Díky za pomoc.

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