/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Undersøge for brugers "snyd" vha mySQL
Fra : Christoffer Kjeldgaa~


Dato : 06-03-04 16:14

Hej NG,

Jeg har lavet en simpel konkurrence på en hjemmeside, hvor
brugerne indtaster svaret på et spørgsmål og deres navn, adresse
m.m. i en form, og indholdet af dette sendes til en
mySQL-database. Imidlertid har jeg erfaret, at der er utrolig
mange brugere der "snyder", og tilmelder sig utallige gange. Det
vil jeg egentlig helst undgå, da der kommer ret mange svar i den
konkurrence, og alle skulle jo helst have lige stor mulighed for
at vinde.

Mit spørgsmål er, hvordan jeg med PHP / mySQL kan undersøge, om
en bruger allerede har tilmeldt sig konkurrencen inden deres data
bliver sendt til databasen? Helst ved at tjekke om IP-nummeret
går igen eller lignende...

Med venlig hilsen,
Christoffer Kjeldgaard

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Kasper Garnæs (06-03-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 06-03-04 18:44

Christoffer Kjeldgaard <christoffer@sappy.dk> wrote:

> Mit spørgsmål er, hvordan jeg med PHP / mySQL kan undersøge, om
> en bruger allerede har tilmeldt sig konkurrencen inden deres data
> bliver sendt til databasen? Helst ved at tjekke om IP-nummeret
> går igen eller lignende...

Der er så vidt jeg kan se to basale måder at gøre det på. Desværre er ingen
af dem 100% optimale.

- Cookies
Sæt en cookie hos brugeren, når han tilmelder sig konkurrencen og tjeck
inden tilmelding om brugeren har en sådan cookie sat. Hvis det er tilfældet
skal han ikke have lov til at tilmelde sig igen.
Problemet med denne løsning er, at den nemt kan omgås ved at slettes sine
cookies.

- IP
Tilknyt en tilmeldig til konkurrencen til brugerens IP adresse. Tjeck inden
tilmelding om brugerens IP allerede er tilknyttet en tilmelding. Hvis det er
tilfældet skal han ikke have lov til at tilmelde sig igen.
Problemet med denne løsning er at det langtfra er alle der har fast IP.
Brugere kan således melde sig til flere gange over forskellige IP'er, mens
andre kan risikere ikke at kunne tilmelde sig, hvis en anden bruger allerede
har tilmeldt sig fra den pågældende IP.

Hvis du allerede har lavet et loginsystem, og man skal være logget ind for
at tilmelde sig konkurrencen kunne du også lave referencer mellem brugere og
konkurrencer, således at en bruger ikke kan tilmelde sig konkurrencer, de
allerede har en reference til. Det forhindrer dog ikke brugere i at oprette
flere forskellige logins og deltage én gang per login.

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Jonas Koch Bentzen (07-03-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 07-03-04 00:15

Christoffer Kjeldgaard skrev:
>
> Mit spørgsmål er, hvordan jeg med PHP / mySQL kan undersøge, om
> en bruger allerede har tilmeldt sig konkurrencen inden deres data
> bliver sendt til databasen? Helst ved at tjekke om IP-nummeret
> går igen eller lignende...

Hvad med mindre opgange/kollegier/firmaer, der deler en ADSL-forbindelse og
kun har én IP-adresse (og netværk med NAT)? I det tilfælde vil én persons
tilmelding betyde, at naboen/kollegaen ikke kan tilmelde sig.

--
- Jonas Koch Bentzen

http://understroem.dk/
http://findhim.com/

No1 (07-03-2004)
Kommentar
Fra : No1


Dato : 07-03-04 08:10

> Mit spørgsmål er, hvordan jeg med PHP / mySQL kan undersøge, om
> en bruger allerede har tilmeldt sig konkurrencen inden deres data
> bliver sendt til databasen? Helst ved at tjekke om IP-nummeret
> går igen eller lignende...

Når du udtrækker vinderen, kunne du tjekke om han/hun har deltaget flere
gange og evt. diskvalificere. Se fx om nogen har deltaget med samme
eller lignende navn og adresse.

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste