Tjena. Jag har byggt färdigt min poll nu men jag har stött på ett problem till. Jag har tänkt att man bara skall kunna rösta en gång/poll. Det märkliga är att ibland funkar det, ibland inte. Någon som vet varför? Min kod ser ut så här:
<?php
$link = mysql_connect (".........", ".......", "........") or die (mysql_error());
mysql_select_db ("......", $link);
$sql = "SELECT ip FROM vote_ip";
$resultat = mysql_query($sql, $link) or die (mysql_error());
while ($rad = mysql_fetch_array($resultat))
{
$ip = getenv ("REMOTE_ADDR");
$vote_ip = $rad['ip'];
}
if ($ip == $vote_ip)
{
header("Location:index.php?vote=fel");
}
else
{
här sparar jag då rösterna.
}
?>
Jo ens ip nummer är samma för efter else så sätter jag in ip nummert i den databasen jag kollar i i koden...och när jag kolla i phpmyadmin kan samma ip nummer finnas med flera gånger.
<?php
$link = mysql_connect (".........", ".......", "........") or die (mysql_error());
mysql_select_db ("......", $link);
$sql = "SELECT DISTINCT ip FROM vote_ip WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'";
$resultat = mysql_query($sql, $link) or die (mysql_error());
if (mysql_num_rows($resultat) >= 1) {
header("Location: index.php?vote=fel");
} else {
// sätt in ip i databasen och spara rösten
}
?>
Tack så mycket Nexus86! Att jag inte tänkte på att jag kunde kolla så! Det verkar funka nu, men det skummaste är ju att min kod funkar ibland :)
Inte så konstigt egentligen. Din kod loopar igenom alla IP'n som finns sparade i databasen. Det är dock bara det sista numret som jämförs med besökarens aktuella IP.
Kom på att det kanske är mer prestandavänligt att hämta ur databasen DISTINCT. D.v.s den räknar bara med en av varje hittad ip. Detta bör snabba upp det hela litegranna men det är absolut inte så att man märker såvida tabellen är helt fullsmockad med rader.
Har redigerat mitt förra inlägg och gjort om sql-satsen och lagt med DISTINCT. Om du vill använda det är helt upp till dig. :)
252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e