Door
tineau
op 16-08-2004 16:29
gewijzigd op 16-08-2004 16:32
1.148 views
Hallo,
ik wil graag bijhouden hoe populair bepaalde nieuwsitems zijn. Dat wil doen mbv cookies (dus niet in een sql database).
Nu heb ik de volgende code geschreven, maar die werkt dus niet. Iemand anders enig idee. Heb ik complete onzin code gemaakt? Of kan iemand er wat van maken wat werkt?
bedankt alvast.
<?
if (!$_COOKIE['item_id'])
{
$item_id = $row_news_item['item_id'];
if (setcookie("item_id",$item_id,time() + 3800))
{
//insert query
}
else
{
//do nothing
}
}
else
{
//verlijk inhoud cookie met $_GET data
if(eregi("$_GET[item]",$_COOKIE['item_id']))
{
//verwijder cookie
setcookie("item_id",$item_id,time() - 3800);
//maak nieuwe cookieinhoud
$itemnieuw = $_GET['item'].",".$_COOKIE['item_id'];
//maak nieuwe cookie
setcookie("item_id",$itemnieuw,time() + 3800);
print_r($_COOKIE);
}
else
{
echo "zit er al in";
echo $_COOKIE['item_id'];
}
}
?>
Koekjes zijn clientside, die kun je dus niet bijelkaar optellen ...
Alleen je client zal dus weten hoevaak hij/zij ergens geweest is, maw kies beter voor MySQL, simpel en snel :D (en ja da rijmt ;))
sorry ik zei het verkeerd. Om te voorkomen dat dezelfde bezoeker 2x geteld wordt wil ik een cookie wegschrijven met daarin het item-id (wat dus meekomt in de URL ($_GET).
Vervolgens bij het bekijken van een ander item wil ik het cookie vergelijken met het $_GET item id en die als deze niet in het cookie zit het cookie updaten .
Maar als je naar de code kijkt snap je denk ik beter wat ik bedoel.
ik snap wel wat je bedoelt maar toch heeft mitch gelijk..
je hebt dan straks een cookie die de volgende inhoud heeft als hij/zij 10 items heeft bekeken:
12|35|31|13|63|23|63|246|42|32
dat zijn slechts 10 items.. wat je elke keer moet doen is de cookie exploden, via een for() loopje er door heen lopen, kijken of hij matched, matched hij niet er 1 bij schrijven.. als je 1000 personen, 500 nieuwsberichten hebben bekeken gaat je snelheid wel achteruit door al die explodes en loopjes :)
daarom kun je het beter in een database bijhouden omdat dit sneller is.. maar het kan ook met een cookie, maar dan heb je ook weer het nadeel dat cookies verwijderd kunnen worden.. en dat rukt ook weer.. :)