Door
Ardjuna Veenstra
op 01-08-2011 00:06
gewijzigd op 01-08-2011 00:07
3.020 views
Momenteel ben ik bezig met een website dat een willekeurige row uit een database haalt. Sommige rows hebben een andere ID maar wel de zelfde content(imagelink noemen wij het)
Ik ben nu bezig om te voorkomen dat bezoekers 2x een row te krijgen met de zelfde content. Hiervoor ben ik nu bezig om alle Imagelinks in de cookies op te slaan zodat ik later ervoor kan zorgen dat rows waarvan de imagelink al terugkomen in de cookies niet worden geselecteerd.
Anyways, ik zou graag willen weten hoe ik deze imagelinks kan opslaan in de cookies zonder dat ik ze overelkaar heen schrijf. Momenteel kan ik alleen de vorige imagelink oproepen, aangezien de imagelink iedere keer wordt overschreven. Mijn vraag is dus hoe ik een array bouw in mijn cookie.
Ik weet niet of je array's kan opslaan in een cookie (moet je gewoon even proberen). Als dit niet kan zet je ze gewoon als een string van link1,link2,link3,link4 in je cookie. Dan kun je ze met $string = explode(',' $string); uit elkaar halen en er een array van maken. en dan met in_array kun je kijken of de imagelink al in de array staat, zo niet zet je hem er bij. Anders doe je niks.
Bijvoorbeeld met zo'n soort code: niet getest of wat dan ook.
<?php
// Kijken of cookie bestaat
$value = (isset($_COOKIE['imageLink'])) ? $_COOKIE['imageLink'] : '';
// Array maken van de $value
$value = explode(',', $value);
// Kijken of de database image link al in de cookie staat
if(in_array('HIER DE IMAGELINK VAN DE DATABASE', $value)) {
// De image link staat al in de cookie
}else{
// De image link staat niet in de cookie, dus image link toevoegen aan array $value
$value[] = 'Hier de image link van de database';
}
// Cookie weer updaten
setcookie('imageLink', implode(',', $value), time()+3600);
?>
Dit moet je in de database regelen, niet met cookies en arrays gaan prutsen! Als je helemaal niet wil dat er dubbele content (of imagelinks) worden opgeslagen dan moet je er een UNIQUE overheen leggen.
Ik snap het niet meer hoor. Naar wie van jullie moet ik luisteren? Ik wil graag informatie opslaan in mijn cookies zonder dat ik de bestaande informatie overschrijf.
Momenteel staat er:
setcookie("clink", $link);
Iedere keer wanneer ik echo $click gebruik zie ik alleen de de link van de vorige pagina. Ik wil graag alle links hebben opgeslagen.
Mogen mensen nooit dezelfde imagelinks te zien krijgen, of gedurende 1 sessie. Is het erg als ik nu op de website kom en ik zie een bepaalde imagelink, dat ik diezelfde imagelink de volgende keer dat ik de website bezoek weer zie? Of vind je het alleen vervelend als tijdens dezelfde sessie dezelfde imagelinks worden getoond? Indien dit laatste het geval is, zou je het miscchien veel makkelijker kunnen oplossen met een sessie-variabele.