Jeg har laget et lite vote-script som funker strålende.. Eneste tingen, er at alle kunne "spamme" vote'n pga ikkeno "sikkerhet"..
Jeg driver nå og jobber med et script som registrerer ip'n til den som vote'r, lagrer ip'n i en database, slik at hver gang noen skal vote, sjekker siden gjennom databasen om ip-adressen til vedkommende er registrert, og hvis det er mindre enn 1 dag (nøyaktig 24 timer) siden det ble sist vote'a fra den ip'n, kan man ikke vote, men hvis der er lengre enn 24 timer sist man vote'a, får man lov til å vote igjen, og datoen og tidspunktet blir oppdatert når man vote'r på nytt så man er nødt til å vente enda 24 timer..
Alt dette har funket helt fint, utenom at det er en hake:
Hvis databasen er tom, altså ingen ip'r registrert, vil siden legge til ip'n i databasen, og vedkommende får beskjed om at han/hun kan kun stemme 1 gang per 24 timer hvis han/hun prøver å stemme igjen like etter. Dette funker helt fint..
MEN, når den skal registrere flere ip'r, går den rett til å si at man kan kun stemme 1 gang per 24 timer osv osv.. Jeg skjønner ikke hva som kan være problemet, og koden er som følger (PS: $date og $time er extracta kolonner fra mysql-databasen):
På forhånd takk for svar!
Jeg driver nå og jobber med et script som registrerer ip'n til den som vote'r, lagrer ip'n i en database, slik at hver gang noen skal vote, sjekker siden gjennom databasen om ip-adressen til vedkommende er registrert, og hvis det er mindre enn 1 dag (nøyaktig 24 timer) siden det ble sist vote'a fra den ip'n, kan man ikke vote, men hvis der er lengre enn 24 timer sist man vote'a, får man lov til å vote igjen, og datoen og tidspunktet blir oppdatert når man vote'r på nytt så man er nødt til å vente enda 24 timer..
Alt dette har funket helt fint, utenom at det er en hake:
Hvis databasen er tom, altså ingen ip'r registrert, vil siden legge til ip'n i databasen, og vedkommende får beskjed om at han/hun kan kun stemme 1 gang per 24 timer hvis han/hun prøver å stemme igjen like etter. Dette funker helt fint..
MEN, når den skal registrere flere ip'r, går den rett til å si at man kan kun stemme 1 gang per 24 timer osv osv.. Jeg skjønner ikke hva som kan være problemet, og koden er som følger (PS: $date og $time er extracta kolonner fra mysql-databasen):
Kode
$ip_addr = $_SERVER['REMOTE_ADDR']; $query = "SELECT * FROM vote_ip"; $result = mysql_query($query); if (!mysql_query("SELECT * FROM vote_ip WHERE ip = '$ip_addr'") || mysql_num_rows($result) == 0) { mysql_query("INSERT INTO vote_ip (ip,date,time) VALUES ('$ip_addr',CURRENT_DATE,NOW())"); echo "Takk for din stemme!<br>"; } else { while ($ip_check = mysql_fetch_assoc($result)) { extract($ip_check); if (mysql_query("SELECT * FROM vote_ip WHERE ip = '$ip_addr' AND CURRENT_DATE < DATE_ADD('$date', INTERVAL 1 DAY) AND time = '$time'")) { echo "Det har allerede blitt stemt fra denne IP-adressen: ". $ip_addr ."<br>"; echo "Du kan kun stemme én gang per 24 timer!<br>"; } else { mysql_query("UPDATE vote_ip SET date=CURRENT_DATE, time=NOW() WHERE ip='$ip_addr'"); echo "Takk for din stemme!<br>"; } } }
Sist endret av HaZnO; 7. november 2004 kl. 00:04.