Autor | Zpráva | ||
---|---|---|---|
Bouda Profil |
#1 · Zasláno: 8. 12. 2010, 09:32:09
Dobrý den
Na stránkách mam pri registraci captcha obrázek který využívá cookies. dá se říct, že hned na začátku scriptu před hlavičkou mam: $rand = mt_rand (1000,9999); setcookie("CapCookie", $rand, time()+10); A problém je ten, že když cookie neexistuje, tak se v pořádku vytvoří a vše je v pořádku. (můžu stránku obnovovat jak chci) Pokud cookie ještě nevypršela vše je opět v pořádku. (můžu stránku obnovovat jak chci) Pokud cookie má prošlý čas (proto tam na test mam jen 10s) a stránka se načte znovu, tak poprvé mi to hodí error a cokie není nastavena a při druhém načtení stránky je to zase v pořádku. Je to nějaká věc co jsem o cookies nepochopil, nebo bude problém v následujícím kódu. Zatím jsem to vyřešil, tak že jsem dal životnost cookie na dlouhý čas, tak problém nenastává, ale já bych ho chtěl zkrátit jen na pár minut. Díky |
||
Tori Profil |
#2 · Zasláno: 8. 12. 2010, 10:54:11
A čeho tím vlastně chcete dosáhnout? Pochopila jsem to správně, že chcete mít platnost sušenky pár minut, ale zároveň umožnit, aby platila i po vypršení zadaného času? Pokud ano, tak jí stačí nastavit čas expirace 0 (nebo zcela vynechat) a bude platit po celou session (=do zavření browseru) anebo s týmtéž výsledkem neukládat $rand do sušenky ale $_SESSION.
Na to prodlužování sušenky o původní (krátkou) platnost by šlo použít něco jako: session_start(); $rand = mt_rand (1000,9999); $platnost = 10; setcookie("CapCookie", $rand, time()+$platnost); if (!isset($_COOKIE['CapCookie'])) { setcookie("CapCookie", $rand, time()+$platnost); $_COOKIE['CapCookie'] = $rand; } - předpokládám, že vám jde spíš o čtení captcha kódu z pole $_COOKIE, než o existenci sušenky. Je to ale takové dost nešikovné řešení. |
||
Bouda Profil |
#3 · Zasláno: 8. 12. 2010, 12:01:43
Tak asi nechápu přímo úpravu délky platnosti vypršené cookie.
Ale váš poznatek mi pomohl vyřešit porblém, ktereý se snažim vyřešit už asi 5dní :) stačilo přidat řádek $_COOKIE['CapCookie'] = $rand; a ani nemusím testovat, že neni nastavená. To se provede přikaždém reloadu capchty... Díky |
||
Časová prodleva: 13 let
|
0