Enda sättet att lösa det på är genom att identifiera besökarna med inloggning. Du kan då i en särskild tabell ange vilka användare som har röstat en viss dag. IP-adresser är inte unika. Flera användare kan ha samma IP och samma användare kan ha flera IP. Cookies sparas hos användaren och är lätta att ta bort.
Hejsan!
Jag kör ett omrösstningsscript på min sida, men tyvärr så är det möjligt för de som röstar att rösta hur många gånger som helst samma dag.
Någon som kunde vara snäll och kika på det och redigera koden lite så att man bara kan rösta en gång??
Vet inte hur svårt det är att lägga en cookie som fixar det. annars bara spara röstarens ip i databasen.
Vore väldigt bussigt!
// Flack
<?php
// poll v1.0 av sl0k (antn@telia.com)
// databaskoppling o val av databas
include("admin/data.php");
$db = mysql_pconnect("$dbhost","$dbuser","$dbpass");
mysql_select_db("$databas");
// om rosta är tom eller 0.. dvs när de inte röstar visas följande
if (!$_GET['rosta']) {
// sql fråga för att välja den poll som ska visas för dagens datum
$fraga = "SELECT * FROM poll WHERE startdatum<=NOW() AND slutdatum>=NOW()";
$resultat = mysql_query($fraga);
$svar = mysql_fetch_array($resultat);
$tot = $svar['totalt'];
$id = $svar['id'];
// om $tot existerar och inte är 0
if ($tot) {
$s1 = 201 - ($svar['svar1']/$tot)*200;
$s2 = 201 - ($svar['svar2']/$tot)*200;
$s3 = 201 - ($svar['svar3']/$tot)*200;
$s4 = 201 - ($svar['svar4']/$tot)*200;
$s5 = 201 - ($svar['svar5']/$tot)*200;
}
// om $tot däremot är 0 får variablerna sättas manuellt då division med 0 inte är tillåtet
else { $s1=201; $s2=201; $s3=201; $s4=201; $s5=201; }
// följande rader skriver ut resultat
print "<p><b>{$svar['rubrik']}</b> </p>
<A HREF=\"default.php?id=$id&rosta=1\">{$svar['svarrubrik1']}</A> ({$svar['svar1']}) <br>
<A HREF=\"default.php?id=$id&rosta=2\">{$svar['svarrubrik2']}</A> ({$svar['svar2']}) <br> \n";
// om 3 svarsrubriker eller fler valts
if ($svar['antalrubr'] >= 3) { print " <A HREF=\"default.php?id=$id&rosta=3\">{$svar['svarrubrik3']}</A> ({$svar['svar3']}) <br> \n";
}
// om 4 svarsrubriker eller fler valts
if ($svar['antalrubr'] >= 4) { print " <A HREF=\"default.php?id=$id&rosta=4\">{$svar['svarrubrik4']}</A> ({$svar['svar4']}) <br> \n";
}
// om 5 svarsrubriker eller fler valts
if ($svar['antalrubr'] >= 5) { print " <A HREF=\"default.php?id=$id&rosta=5\">{$svar['svarrubrik5']}</A> ({$svar['svar5']}) <br> \n";
}
// skriver ut antal röster totalt
print " <HR STYLE=\"position:relative; top:5px; left:-2px;\" WIDTH=\"93%\"><DIV STYLE=\"position:relative; left:6px; top:2px;\">Totalt: $tot röster</DIV>
</DIV>";
}
// här är det som bearbetar röstningen
else {
$svar = "svar{$_GET['rosta']}"; // röst svaret läggs till 'svar' så att det tex blir svar2
$id = $_GET['id']; // id på pågående fråga
// följande ökar den kolumn som ska ökas och ökar även totala antalet röster
$fraga = "UPDATE poll SET {$svar} = {$svar}+1, totalt=totalt+1 WHERE id='$id'";
mysql_query($fraga);
// skickar tillbaka användaren till resultatet
print "<SCRIPT>self.location=document.referrer;</SCRIPT>";
}
?>

