ik maak een poll.
dat gaat goed maar nu heb ik een probleempje.
hij slaat alles op en update het.
berekeningen zijn ook goed.
maar je kan altijd stemmen.
en ik zie niet hoe ik kan maken dat je maar 1 maal kan stemmen.
maar die eerste if kan ik niet.
ik wil zien of het ip al in die rij staat.
en hij slaat het zo op
,ip,ip,ip
als jumllie het niet verstaan leg ik het nog is uit.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
//uitlezen het ip om te kijken of je al gestemd hebt.
$getIP = mysql_query("SELECT * FROM poll WHERE ipadres LIKE '".$ip."'") or die (mysql_error());
while ($check = mysql_fetch_array($getIP))
{
$var = "ja";
}
if($var !="ja")
{
//stemmen mag
}
else
{
//al gestemd
}
?>
<?php
$ip=$_SERVER['REMOTE_ADDR'];
//uitlezen het ip om te kijken of je al gestemd hebt.
had ik ook al in gedachten maar werkt zelker niet meer he.
het zit in 1 rij.
dus zo
,$ip,$ip,$ip,$ip
die $ip ei een ip adres natuurlijk.
maar weet niet hoe te zien of uw ip al in die lijst staat.
$select=mysql_query("SELECT * FROM `$tabel` WHERE `ip` LIKE '%".$_SERVER['REMOTE_ADDR']."%' AND `id` = '$id' ORDER BY `id` DESC LIMIT 1") or die(Mysql_Error());
niet getest mar zie dat het niet werkt.
hij slaat alles op in 1 rij
dus zo
vraag - antwoord1 - antwoord2 - antwoord3,... -stem1, -stem2, -stem3,... gekozen
Je hebt de ip's opgeslagen met telkens een komma ertussen.
Dan zal LIKE '%".$_SERVER['REMOTE_ADDR']."%' wel werken aangezien hij dan gewoon kijkt of hij er al tussen staat!
<?
$sel = mysql_query("SELECT gekozen FROM tabel WHERE vraag='vraag'");
if($poll = mysql_fetch_assoc($sel)) {
$ip = $_SERVER['REMOTE_ADDR'];
if(preg_match("/$ip/",$poll['gekozen']) == 0) {
// Als hij of zij dus nog mag stemmen.
$magstemmen = 0;
}else{
// Als hij of zij al gestemt heeft.
$magstemmen = 1;
}
}
?>
<?
$sel=mysql_query("SELECT gekozen FROM tabel WHERE vraag='vraag'");
Ik weet niet of jij hetzelfde hebt al ik indertijd had (en niet in de gaten had)
Ik maak gebruik van zo'n No-ip programmatje en heb de domeinnaam in mn bookmarks, als ik iets local test dan test ik vaak via die link....maar dat heeft wel telkens een apart ip nummer en kan je dus zo ongeveer nonstop blijven stemmen.
Het duurde bij mij ook even voordat ik erachter was.
m.a.w. test je het via 127.0.0.1 ?
Zoniet, doe dat dan maar
zelf sla ik gestemde ip op in een aparte tabel.
Hierin slaat ie de poll id en het ip op bij het stemmen.
vervolgend tijdens stemmen de volgende controle:
$query = "SELECT * FROM poll_gestemd WHERE poll_id = 'POLL_ID' AND ip = '".$_SERVER['REMOTE_ADDR']."'";
$result5 = mysql_query($query) or die (mysql_error());
if(mysql_num_rows($result5)==1)
{
echo "U heeft al gestemd op deze poll.";
}
else
{
doorgaan
}
$query="SELECT * FROM poll_gestemd WHERE poll_id = 'POLL_ID' AND ip = '".$_SERVER['REMOTE_ADDR']."'";
Het beste is inderdaad om alle stemmen op te slaan in een aparte tabel. Op die manier blijft je database ook goed genormaliseerd. Je hebt nu een herhalende groep binnen 1 tupel, dat is niet goed.