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.
Okay, klinkt logisch. Hoe zou ik het beste een string in een cookie kunnen maken?

Zou het dan zoiets zijn als:
Imagelinkcookie = Imagelinkcookie + ,Imagelink

Ik ben nieuw in php en heb nog veel moeite met het schrijven van php taal.
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);
?>
Momenteel heb ik dit:
setcookie("clink", $link);

clink staat voor cookie image link en $link is natuurlijk de var van de imagelink.

U stelt dus voor dat ik dit vervang met:
setcookie('clink', implode(',', $link);

Als ik u goed begrepen heb?

SELECT content FROM tabel GROUP BY content


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.
of je array door serialise() halen.
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.
Nooit is de bedoeling. Ik wil dat je alles maximaal 1x ziet.
Ah oké, dan kun je inderdaad beter met cookies werken, maar hou er wel rekening dat niet iedereen cookies accepteert (het merendeel wel hoor).

Reageren