Hallo,

Ik heb een ratingscript op mijn website. Hij werkt als volgt:
Je stemt, dan komt je stem (bijvoorbeeld 5) bij de andere stemmen. Dan komt er ook bij 'het aantal stemmen' 1 bij.

Dan wordt het gemiddelde berekent door alle stemmen opgeteld te delen door het aantal stemmen. Vrij duidelijk dus.

Maar nu kan het wel dat iemand bijvoorbeeld 2 keer kan stemmen. Dat wil ik voorkomen. Maar omdat ik geen zin heb om mijn ratingsysteem helemaal om te gooien wil ik kijken hoe ik een rating aan een IP kan koppelen.
Is er zoiets mogelijk:

Een extra kolom in de database erbij doen, waarin ALLE ip's worden opgeslagen, en gescheiden worden door bijv komma's. Als dan iemand stemt, dan kijken of zijn/haar IP niet al in die kolom staat.

Kan dit?

Sebas
Je kan gewoon een nieuwe kollom erbij maken en dan als ze gaan raten controleren of er al gestemt is met het ip.

Ik hoop dat je snapt wat ik bedoel. Anders geef ik wel een vbtje zo.
Nee, ik snap nietecht wat je bedoelt, want als er nou meer mensen stemmen, dan komen er toch meer IP's in die kolom?

Een voorbeeldje zou idd fijn zijn :)
PSResource schreef op 19.05.2007 15:28
Je kan gewoon een nieuwe kollom erbij maken en dan als ze gaan raten controleren of er al gestemt is met het ip.

Ik hoop dat je snapt wat ik bedoel. Anders geef ik wel een vbtje zo.


Op zich een goed idee, maar je kan dan ook gewoon het veld van het ip adres uniek maken. Op deze manier kan hij maar 1 keer toegevoegd worden.
Als je hem dan nog een keer wilt toevoegen krijg je een foutmelding welke je gewoon netjes kunt afvangen.
misschien kan je ff bij andere poll scripts kijken hoe zij het hebben gedaan misschien kom je er dan uit.
Even een voorbeeld:
In mysql heb je dit:

ip varchar(50)
rate varchar(50)(of hoe je dat ook doet)
enz.

en in PHP:

$ip= $_SERVER['REMOTE_ADDR'];
$select= "SELECT * FROM `tabel` WHERE ip='$ip'";
$res_select= mysql_query($select);
if (mysql_num_rows($res_select) > 1)
{
echo "U heeft al gestemd!";
}


zoiets. Of je kan doen wat er 2 posts boven mij gezegt wordt.

SUCCES!
Maar dat is toch niet handig? Stel ikzit op mijn werk en al mijn collega's willen stemmen. Wij hebben allemaal hetzelfde ip, dat hangt af van de internet verbinding, niet van je lokale netwerk. Dat betekend dat er maar 1 van de 10 mensen kan stemmen op mijn werk...

Hoe nu verder? Misschien dat je beter iets met cookies kan doen. Deze kan je verwijderen maar dat ben je na 2 keer ook wel weer zat hoor!

Succes!
Nou als +18 miljoen mensen nu allemaal achter éen IP adres zaten is het inderdaad niet handig. In januari dit jaar werd er gesteld dat er circa 29 aansluitingen per 100 inwoners breedband hebben.

Dus je kan dit dus best op IP basis doen gezien de aantal gebruikers achter éen ip adres in verhouding vele malen kleiner is.

--

En cookie's gebruiken om te voor zorgen dat er dan niet meer gescant kan worden raad ik af, ik hoef echt niet zelf cookie's te verwijderen dat kan ik ook laten automatiseren en zo het stem gedrag beinvloeden.




PSResource schreef op 20.05.2007 00:05
Even een voorbeeld:
In mysql heb je dit:

ip varchar(50)
rate varchar(50)(of hoe je dat ook doet)
enz.

en in PHP:

$ip= $_SERVER['REMOTE_ADDR'];
$select= "SELECT * FROM `tabel` WHERE ip='$ip'";
$res_select= mysql_query($select);
if (mysql_num_rows($res_select) > 1)
{
echo "U heeft al gestemd!";
}


zoiets. Of je kan doen wat er 2 posts boven mij gezegt wordt.

SUCCES!



Als ik het goed begrijp dan maak je bij elke nieuwe stem een nieuwe RIJ. Maar ik wilde weten of je bij elke nieuwe stem vanaf een IP, dat Ip-adres in dezelfde RIJ kan zetten. Dat klinkt misschien vaag, maar zoiets bedoel ik:

id varchar(50)
inhoudvanid varchar(50)
ip varchar(50)
rate varchar(50)
votes varchar(50)


Dus er kan meerdere keren gestemd worden op het id, en er komen géén nieuwe rijen bij. Kan dit?

Als dat niet duidelijk, laat dan maar. Dan laat ik een ip wel meer keer stemmen..

Sebas

Bedankt voor de reacties!

Reageren