[PHP] Cookie probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nog niet zon grote ervaring met cookie's maar heb ooit een forum gemaakt waarbij ze wel werkten. Ik ben op dit moment bezig met het maken van een poll en daarbij wil ik ook gaag cookies gebruiken zodat niet iedereen 100 keer kan stemmen.

Het probleem nu is, hij zet de cookie en ik kan ook zolang ik de browsers niet afsluit de informatie gebruiken maar wanneer ik de browser afsluit en overnieuw opstart en de pagina bekijk dan is het gewoon weer mogelijk om te stemmen.

Ik heb deze code gebruikt bij de actie "stemmen":

PHP:
1
setcookie("gevoteop",$gevote,time()+3600*24,'/');


Als goed is zorgt de cookie ervoor dat hij 1 dag blijft bestaan en de waarde "gevoteop" vasthoud.

PHP:
1
if (!strstr($_COOKIE["gevoteop"], $poll)) {


Ik roep hem op die manier aan, dit werkt dus zolang ik de browser niet herstart.

Kan iemand mij helpen?

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14

pietje63

RTFM

Het lijkt erop dat de cookie zich als een sessie gedraagd... Normaal worden alleen cookies met tijdsduur 0 verwijderd bij het afsluiten van de browser.

Is het trouwens niet een beter idee om ip's te loggen (ipv of naast) cookies aangezien cookies vrij makkelijk te verwijderen zijn.`

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dat is wel waar, daar heb ik zelf ook aangedacht maar dan krijg ik er weer een table bij en dat aantal wil ik zo klein mogelijk houden eigenlijk :)

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14

pietje63

RTFM

Verwijderd schreef op 14 januari 2004 @ 14:23:
dat is wel waar, daar heb ik zelf ook aangedacht maar dan krijg ik er weer een table bij en dat aantal wil ik zo klein mogelijk houden eigenlijk :)
Kan eventueel ook in een tekst-bestand...

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oja, bedankt :) ik zal er eens wat van gaan knutselen

Acties:
  • 0 Henk 'm!

  • Ariejan
  • Registratie: Februari 2001
  • Laatst online: 17-09 20:10
Verwijderd schreef op 14 januari 2004 @ 14:23:
dat is wel waar, daar heb ik zelf ook aangedacht maar dan krijg ik er weer een table bij en dat aantal wil ik zo klein mogelijk houden eigenlijk :)
En waarom zou je dat willen? Wil je iets goeds leveren of niet? Er is niks mis met 'n extra tabel maken om sessies op te slaan ofzo.

Computeraar - Part-time Maker van Geluiden - https://neuroslasher.bandcamp.com


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Als je ip's gaat bijhouden in een text bestand (wat opzich beter is als cookies)
Denk er aan dat opzoeken dan langzamer is als zoeken en een tabel.

Om het geheel nog iets sneller te laten zoeken kan je ip2long() gebruiken
(zoeken op geindexeerde intergers is immer sneller als op strings)

Een leuke ip log functie kan je op php.net vinden hier om precies te zijn. Kijk dan even naar i2c_realip();

Acties:
  • 0 Henk 'm!

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 12-09 17:04
Is het niet beter om gewoon zo een cookie te checken?

PHP:
1
2
3
<?
if ($_COOKIE["gevoteop"] != $poll) {
?>

Acties:
  • 0 Henk 'm!

  • robertpNL
  • Registratie: Augustus 2003
  • Niet online
Het gebruik van cookies ter bescherming dat men nog een keer gaat stemmen is niet handig.

Er kleven twee nadelen aan: de cookies kunnen weg worden gegeooid en iemand kan zijn browser hebben ingesteld dat cookies nooit mogen worden gebewaard. M.a.w. men kan gewoon nog een keer stemmen.

Leg de beveiliging aan jouw zijde en registreer IP-adressen ($REMOTE_ADDR) en voeg deze in een tabel voor de snelste oplossing i.p.v. een tekstbestand.

Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 19-09 17:00
Ik vind cookies nog niet eens zo'n slecht idee. Meestal is een poll niet zo spannend. En als je IP gaat loggen kunnen mensen met een inbel verbinding zo weer opnieuw stemmen. Ik zie geen problemen met cookies. Het is voor de personen veel te lastig en ook niet zo zinvol om steeds het cookie te verwijderen en dan weer een keer stemmen, cookie verwijderen, nog een keer stemmen, enz...

om even op het topic in te gaan, wrom gebruik je de functie strtsr? Je kan toch net zo goed een id bijhouden van de poll, en zo controleren of er op de bepaalde poll is gestemd? Dan doe je gewoon $_COOKIE['welkepoll'] == $cur_poll. Als je gebruikt van meerdere polls kan miss wel even kijken naar het opslaan van een array ofzo.

[ Voor 31% gewijzigd door FlowinG op 15-01-2004 08:54 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik gebruikte inderdaad meerdere polls.. hij zet gewoon telkens in $gevoteop de poll neer.. dus dan krijg je "poll1poll2poll3poll4" enzovoort bijvoorbeeld. En daarom gebruik ik strstr() om te kijken of hij er in voor komt :)

Maar ik heb het nu gedaan met een database dat ip's bevat en dat gaat goed. Dus opzich mag er hier wel een slotje op, ik heb een oplossing
Pagina: 1