Erik B. Skrevet 12. november 2006 Del Skrevet 12. november 2006 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
Canute Skrevet 12. november 2006 Del Skrevet 12. november 2006 Du kan jo ha et eget felt for hver stemme hvor du også setter ipen til personen, så hver gang noen stemmer så skjekker du om ipen allerede finnest i databasen. Lenke til kommentar
Scix Skrevet 13. november 2006 Del Skrevet 13. november 2006 Er nok IP som er det enkleste, men vis systemet er så stort at du gidder, kan du jo sikkert gjøre slik at de må bekrefte stemmen med mail aktivering før det gjelder... Lenke til kommentar
Erik B. Skrevet 13. november 2006 Forfatter Del Skrevet 13. november 2006 Ja, men hvordan kan jeg oppevare flere ip adresser i en kolonne? Lenke til kommentar
shaker Skrevet 13. november 2006 Del Skrevet 13. november 2006 (endret) 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å 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 14. november 2006 av shaker Lenke til kommentar
Canute Skrevet 13. november 2006 Del Skrevet 13. november 2006 Ja, men hvordan kan jeg oppevare flere ip adresser i en kolonne? 7279691[/snapback] Høh? Hvorfor ville du gjort noe slikt? Gi oss et innblikk i hvordan tabellene ser ut nå så kan vi se hvor det eventuelt bør rettes på. Lenke til kommentar
blackbrrd Skrevet 13. november 2006 Del Skrevet 13. november 2006 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
aslet Skrevet 13. november 2006 Del Skrevet 13. november 2006 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
Canute Skrevet 13. november 2006 Del Skrevet 13. november 2006 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
aslet Skrevet 13. november 2006 Del Skrevet 13. november 2006 Ja! Da vil det holde å lagre ip'n til stemmern og id'n til pollen. (Snakker her om poller som skiftes etter en stund så hver poll har unik id.) Takk for tipset! Lenke til kommentar
aslet Skrevet 14. november 2006 Del Skrevet 14. november 2006 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå