09. november 2010 - 13:56Der er
14 kommentarer og 1 løsning
setcookie virker kun lokalt
Hej allesammen. Håber i kan hjælpe mig. Jeg arbejder på et simpelt poll script hvor man først stemmer og så bliver der lavet en cookie så den samme ikke kan stemme igen. Og det virker sådan set også fint når jeg køre lokat, men når den kommer på nettet, bliver cookien ikke oprettet, og man kan bare blive ved med at stemme!
cookien bliver slet ikke oprettet. når jeg køre lokalt bliver den lavet med den rigtige længde(30 dage) men på nettet sker der som sagt slet ingen ting
setcookie() bør du ALTID bruge INDEN output til browser ! Og sæt altid gerne en path på også. Der er nogle browsere som ikke acceptere en cookie hvis ikke path er sat.
setcookie("cookienavn","value",(time()+2592000), "/"); her gælder cookie for hele domainet.
du sender <form method="post" action="<?php $_SERVER['PHP_SELF']?>"> ud til skærmen før du laver din set cookie
http://dk.php.net/setcookie [cut] setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. [/cut]
Jeg har nu prøvet at ændre det så cookien kommer først men der skete ikke noget. derefter prøvet jeg at fjerne alt kode undtagen setcookie for bare at sige at den skal lave en cookie når siden bliver vist. men her fik jeg samme resultat. nemlig at den bliver oprettet lokalt men der sker ingen ting på nettet!! måske er det ikke koden der fejler noget men browseren som ikke vil oprette en cookie. men det giver bare ingen mening :-(
jamen webweaver du havde ret med begge ting:-) php fejl var slået fra så jeg ikke kun se fejl meddelesen der kom. nu har jeg flyttet mine if op i toppen og det virker
nej det burde vel ikke virke lokalt!! og det med cookie som er slået fra havde jeg tænkt på, men jeg vidste ikke helt hvordan jeg ellers skulle sikre mig at folk kun kan stemme en gang uden at de skulle være logget ind eller ligende
Men, ak. Det forhindrer kun ærlige folk i at snyde. - svindlerne sletter jo bare cookien, og stemmer igen.
Bedre at registrere brugerens iP-adresse (på serveren) men det er, faktisk, heller ikke helt godt, da forskellige brugere godt kan have samme iP-adresse (udadtil) - kollegaer i et firma f.eks. eller elever på en skole..
Jeg har desværre ikke LØSNINGEN - men er stærkt interesseret, hvis der er andre der har den : )
iP + Email + "browser-footprint" som unik nøgle måske...?
I en løsning jeg engang var involveret i, lod vi bare folk snyde så meget de ville. Men slettede så alle gengangerne lige inden den endelige optælling. Efter den logik, at hvis snyderne troede at det var let at snyde så ville de ikke begynde at hacke "for alvor"... Kan dog ikke prale med at det var nogen ubetinget success: ENORMT meget snyderi, og totalt misvisende "mellemtider" inden den endelige afgørelse.
Ja jeg har også prøvet det med ip men som du også selv siger er det ikke den perfekte løsning når brugere har samme ip..
jeg kender ikke lige den bedste løsning men tror bare jeg bruger cookies, for hvis folk virkelige vil snyde og sletter deres cookie for at stemme igen, er der ikke så meget at gøre ved det
Løsningen er at bruge cookies. Det er bare en poll. IP løsning, er efter min vurdering overkill, og det er næsten lige så usikkert. 1. argument er som I nævner, at netværk kan sidde på samme IP. Men nu mere det at de fleste folk nu om dage har dynamisk IP, så den skifter alligevel og så kan de også stemme igen, hvis De har lyst.
Og alle de betingelser, IP, mail, cookie og hvad ved jeg på samme tid.. Ahh.. Det gider folk altså ikke taste ind, så lader de bare være med at stemme. Det er kun en afstemning. Og sådan er det bare :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.