pageviews vastleggen in cookie
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
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'];
}
}
?>
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'];
}
}
?>
Gewijzigd op 16/08/2004 16:32:00 door Tineau
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 ;))
maar je kunt toch een cookie serverside uitlezen, vervolgens de data veranderen en daarna weer wegschrijven met nieuwe data?
Quote:
ik wil graag bijhouden hoe populair bepaalde nieuwsitems zijn. Dat wil doen mbv cookies (dus niet in een sql database).
Dat kun je niet bijhouden met cookies ...
Je kan wel het totaal in een bestandje zetten, maar dan nog blijft het omslachtig.
Quote:
maar je kunt toch een cookie serverside uitlezen, vervolgens de data veranderen en daarna weer wegschrijven met nieuwe data?
Dat kan idd ...
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.
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.. :)
" maak een tut ervan zodat iemand het ook kan begrijpen als hij niet echt 123 php kent zoals mij" .
Goed dan maar weer eens verder experimenteren met een sql tabelletje :)
Gewijzigd op 16/08/2004 20:43:00 door tineau