Gå til innhold

Poll - Kun kan stemme en gang


Anbefalte innlegg

Hei, for dere som har lest i database kategorien har sikkert sett at jeg holder på med et pollsystem. Nå er det jeg lurer på følgende:

 

Hvordan skal jeg gjøre slik at de som stemmer kun kan stemme en gang på vær enkelt poll?

 

Hvilke muligheter har jeg? Pollen baserer seg på MySQL.

Lenke til kommentar
Videoannonse
Annonse

Kan separere de (med f.eks ":::" eller noe) og bruke explode() for å få de til et array når du skal bruke de senere. Men vet ikke om det er den beste måten å lagre IP adressene på :p

 

EDIT: for å få de tilbake i en string bruker du implode()

 

$ip_string = "132.42.211:::86.321.332:::127.0.0.1";

if(in_array($_SERVER['REMOTE_ADDR'],explode(":::",$ip_string))) {

//Du har stemt!

}

else {

//Du har ikke stemt

}

Endret av shaker
Lenke til kommentar

Hvis du begrenser på IP så vil f.eks kun en person på en høgskole få stemt...

 

Tror det går an å lagre en cookie på klienten som sier at den har stemt tidligere. Det går selvsagt an å slette cookies, eller skru dem av. Denne løsningen er heller ikke uten problemer.

 

Den måten som fungerer best er hvis man må ha brukernavn/passord for å få stemt, men det er klønete på mange måter...

Lenke til kommentar

Dette holder jeg akkurat med på med nå.

 

Jeg prøvde å bruke cookies. Altså når noen stemte så fikk de en cookie som inneholdt id'en til pollen.

Så når pollen vises, hentes id'en fra databasen og sammenligner med verdien i cookien. Men noe er feil, så det blir bare opprettet en ny cookie med samme innhold og samme navn.

 

Kanskje det å legge ip'n med i db'n er en ide.. Men hos meg har jeg bare opprettet en verdi som økes med èn når det blir stemt på det alternativet. Da må man evt lage en koblingstabell eller noe mer avansert.

Lenke til kommentar
Kanskje det å legge ip'n med i db'n er en ide.. Men hos meg har jeg bare opprettet en verdi som økes med èn når det blir stemt på det alternativet. Da må man evt lage en koblingstabell eller noe mer avansert.

7280039[/snapback]

Hvis du synes det er for avansert, kan du jo lage en helt individuell tabell hvor du legger alle ipene som har stemt.

Lenke til kommentar

Har nå implementert det og det funker veldig bra, iallefall til mitt bruk!

 

Spørr først om IP til den PCen brukeren sitter på, leter på i poll_id-tabellen om den IPen har stemt på den aktuelle pollen (via en id til hver poll).

Hvis den finnes (eller han nettopp har postet) blir han forevist resultatene.

Hvis ikke får han lov til å stemme.

 

Har også en funksjon i adminpanelet mitt hvor jeg kan slette rader som tilhører gamle polls, slik at man sparer plass i databasen etterhvert.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...