[PHP] Hoe los ik dit probleem op mbv cookies?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Hallo,

Ik wil het volgende bereiken.
Ik heb een gedeelte van een website waar gebruikers straks zelf kunnen bepalen welke records ze zien uit een database tabel dmv de resultaten uit een html-form bijv. (soort startpagina idee voor het gemak van dit verhaal). De key in die tabel is 'ID'. En de bedoeling is dat mijn site de volgende keer dat de bezoeker komt .. deze verzameling records (ID's) heeft onthouden. Cookies dus.

Stel dat ik straks via een form ofzo een gebruiker heb die alleen de inhoud van de velden met ID = '1, 4, 8 en 19' wil zien. Hoe sla ik dit dan op in een cookie en hoe krijg ik het eruit ?

Een array-cookie lijkt me een beetje lomp, omdat je dan straks 19 cookies hebt van mijn site (en bovendien mag 1 site maar max. 20 cookies hebben).
Dus kan ik dat op een of andere manier anders doen ? Bijvoorbeeld op deze manier ?

PHP:
1
setcookie("id", "1,4,8,19", mktime()+86400,"/")


Maar hoe krijg ik dan later die waardes in een array of query zodat het script de records laat zien.

Kan iemand me even op weg helpen en zeggen of ik het op de juiste manier aanpak ?

Acties:
  • 0 Henk 'm!

  • Niek
  • Registratie: Februari 2001
  • Laatst online: 20-09 14:06

Niek

f.k.a. The_Surfer

Sessions gebruiken ipv cookies? En desnoods a.d.h.v. een inlogcode uit een SQL DB fetchen. Dit soort dingen ga je niet opslaan in cookies :)

En als antwoord op je vraag: explode.

[ Voor 24% gewijzigd door Niek op 10-12-2004 21:39 ]

À vaincre sans péril, on triomphe sans gloire - Pierre Corneille


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Sessies wil ik niet .. want als je je browser afsluit is alles verloren.
En ik wil dus liever geen inlog-methode etc ... Bezoekers van een site registreren niet graag. Het moet 'quick and simple ' blijven .. Dus liever wel met cookies.

En tanx ! Ik zal es kijken of ik het met 'explode' kan regelen.

[ Voor 15% gewijzigd door BoXie op 10-12-2004 21:42 ]


Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Een array-cookie lijkt me een beetje lomp, omdat je dan straks 19 cookies hebt van mijn site (en bovendien mag 1 site maar max. 20 cookies hebben).
uh.. als je iets doet als
PHP:
1
setcookie("id", array(1,4,8,19), mktime()+86400,"/")

heb je toch maar 1 cookie waar gewoon de array in staat zover ik weet?
En eventueel nog een serialize gebruiken misschien, en dan bij het ophalen unserialize..

Niets nagekeken/geprobeerd ofzo maar zover ik denk moet dat gewoon werken...

[ Voor 8% gewijzigd door semicolon op 10-12-2004 22:09 ]

:D/-<


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Max v W schreef op vrijdag 10 december 2004 @ 21:48:
[...]


uh.. als je iets doet als
PHP:
1
setcookie("id", array(1,4,8,19), mktime()+86400,"/")

heb je toch maar 1 cookie waar gewoon de array in staat zover ik weet?
En eventueel nog een serialize gebruiken misschien, en dan bij het ophalen unserialize..

Niets nagekeken/geprobeerd ofzo maar zover ik denk moet dat gewoon werken...
Ja inderdaad .. zo kan het ook .. maar ik was nog niet bekend met functies zoals implode en explode.
Maar ik ga es aan de gang .. en trek hier later weer even aan de bel om het te laten checken.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
BoXie schreef op vrijdag 10 december 2004 @ 21:39:
Sessies wil ik niet .. want als je je browser afsluit is alles verloren.
PHP:
1
ini_set('session.cookie_lifetime', time() * 2);

Sessions gebruiken ook cookies ;)
En ik wil dus liever geen inlog-methode etc ... Bezoekers van een site registreren niet graag. Het moet 'quick and simple ' blijven .. Dus liever wel met cookies.
Hoezo login methoden? Als je bij het laden van de pagina, een sessie start is het toch ook goed?

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

BoXie schreef op vrijdag 10 december 2004 @ 21:39:
Sessies wil ik niet .. want als je je browser afsluit is alles verloren.
En ik wil dus liever geen inlog-methode etc ... Bezoekers van een site registreren niet graag. Het moet 'quick and simple ' blijven .. Dus liever wel met cookies.
Een sessie is in essentie een cookie - alleen dan niet inhoudelijk manipuleerbaar vanaf de clientside.

Dat je sessies ook kunt gebruiken om een login mee te bouwen, wil natuurlijk niet zeggen dat dat het enige is wat je er mee kunt.

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Nee maar er werd denk ik bedoeld dat elke gebruiker zijn voorkeuren in de MySQL database vastlegd. Dat wil ik dus niet .. zijn / haar voorkeuren moeten in een cookie komen.

Het blijkt trouwens dat dat explode / implode niet nodig is .. kan gewoon met een SQL query.
Ik heb nu bijv. dit, waarbij de value in de cookie numerieke getallen zijn gescheiden door komma's .. bijv. '2,5,7,8'.

PHP:
1
2
3
4
5
// escape is een functie die o.a. mysql_real_escape doet voor de zekerheid

$id_list = escape($_COOKIE['id']);

$sql = "SELECT * FROM feed_content WHERE Feed_ID IN (" . $id_list . ")";


En nou moet ik dus nog vantevoren een html-form maken dat op de pagina wordt weergegeven als de cookie (lees voorkeuren) nog niet bestaat. Zou ik dan op de goede weg zitten ?

Dus:

Geen cookie ? -> Dan form weergeven -> Form gesubmit ? -> Pagina weergeven op basis van query.

Mee eens ?
Pagina: 1