ugrás a tartalomhoz

Cookie tárolás

Castor87 · 2011. Nov. 10. (Cs), 17.18
Sziasztok!

Írtam egy egyszerű látogató-számlálót php nyelven egy képgalériához, minden látogatásnál eltárol egy sütit a kép azonosítójával 1órás lejárati idővel.

Ha nem létezik a süti, akkor létrehozza és megnöveli egyel az adatbázisban lévő számláló értéket. Ellenkező esetben nem csinál semmit.

A gond azzal van, hogy firefox(más böngészőt most nem néztem meg) a lejárt sütiket nem dobja el. Ha még nem látogatott fotót nézek, akkor megnöveli egyel a számlálót. Ha van süti ami még nem járt le (tehát kevesebb mint 1órája néztem), akkor nem csinál semmit. De ha olyan süti van ami lejárt, de nem törölte a böngésző, akkor kettővel növeli meg a számlálót.

if(!isset($_COOKIE["img".$name])) {
$visitor = $visitor+1;
setcookie("img".$name, 1, time()+3600);
//ide beírtam egy levélküldő részt és egy futtatásra 2 levél jött
}

Más találkozott ilyen problémával? Mi lehet a megoldás?
 
1

timestamp

Poetro · 2011. Nov. 10. (Cs), 17.53
Mi lenne ha az értéknek 1 helyett mondjuk a lejárati időbélyeget ellenőriznéd? Akkor még lejárt süti esetén is tudnád, hogy mikor lett beállítva.
2

Köszi a választ! Ez szerintem

Castor87 · 2011. Nov. 10. (Cs), 18.23
Köszi a választ! Ez szerintem nem oldja meg azt a problémát, hogy a fenti kód miért fut le kétszer ha nem létezik a süti. (közben létezik csak lejárt dátummal) De elvben nem létezik, mert belefut az if ágba. Azt hiszem elkezdtem tanulmányozni a mobil alkalmazás fejlesztést. xD
3

Kétszer?

Poetro · 2011. Nov. 10. (Cs), 19.59
Nem lehet hogy két oldalt nézel? Nézd meg a HTTP forgalmadat, hogy biztos legyél benne, hogy csak egyszer töltődik be az oldal.
5

Megnéztem, egyszer töltődik

Castor87 · 2011. Nov. 10. (Cs), 20.33
Megnéztem, egyszer töltődik be.
4

Azt találtam ki, hogy egy óra

Castor87 · 2011. Nov. 10. (Cs), 20.00
Azt találtam ki, hogy egy óra helyett böngésző bezárásáig él a süti. És hogy szebb legyen, tömböt használok a tárolásra.
7

Cookie helyett tárolhatnád

bb0072 · 2011. Nov. 11. (P), 11.28
Cookie helyett tárolhatnád session-ben is, hogy lekérte-e már. Ekkor nincs para abból ,hogy milyen cookie-t küld a böngésző, és a request is kisebb lesz.
6

Vannak közösségi api-k az

Castor87 · 2011. Nov. 10. (Cs), 21.35
Vannak közösségi api-k az oldalon. Szerver logból kiderült, hogy facebook kéri le az oldalt ilyenkor.

szerk:
de ilyen user agent-et találtam: Mediapartners-Google
Lehet adsense bot lesz a megoldás.