Hallow,

Ik ben bezig met een Multie poll.
Hij is bijna af alleen 1 probleem..
Ik heb er een IP register systeem in gemaakt zodat als je al hebt gestemt dat je dat niet nog een keer gaat doen..
Dat heb ik nu alleen hij wil niet egt..
Dit is m'n script waar word gekeeken als je al hebt gevote:


$ip = $_SERVER['REMOTE_ADDR'];
$sqla = "SELECT ip FROM php_poll WHERE ip = '$ip' AND id = '$id'";
$res = mysql_query($sqla) or die(mysql_error());;

if ($res >= 1){
header("Location: results.php?id=$id");
exit;
} 


en je IP toevoegen:

$sql = "UPDATE php_poll SET ip = CONCAT(ip, '," . $_SERVER['REMOTE_ADDR'] . "') WHERE id='$id'";
$res = mysql_query($sql);


Nu is het probleem dat als ik vote dan komt er in de leege tabel dit te staan:

,ip

als ik er dan een standaard waarde in zet dan word ik automatish al door geschaakeld naar de results pagina..

DB Kollom:

`ip` text NOT NULL,
Wat is dit voor rare query?
$sql = "UPDATE php_poll SET ip = CONCAT(ip, '," . $_SERVER['REMOTE_ADDR'] . "') WHERE id='$id'";

Wat wil je met die CONCAT() eigenlijk doen? Je zet toch gewoon het ip-adres in de kolom 'ip' ? Of sla jij een voornaam in de kolom 'voornaam' op met CONCAT('voornaam', $voornaam) ? Lijkt mij toch van niet... Hiermee verkloot je de database en kun je vervolgens geen vergelijkingen meer doen.

Maak de kolom 'ip' UNIQUE en insert het ip-adres. Wanneer het ip-adres al in de tabel staat, gaat de query fout. De foutmelding vang je op met je foutafhandeling (error 1062) en klaar ben je.
dus zo iets:


`ip` text NOT NULL, 

vervangen door:

`ip` UNIQUE NOT NULL, 


Ik gebruik trouwens maar 1 collom om alle IP's erin te zette die al hebbe gestemt..

en dan?? :S
Wel bumpen (binnen een dag!) maar zelf niets uitproberen? Verwacht dan niet al te veel reacties...

Succes.
Sorry,

Ik probeer het wel alleen ik weet niet hoe ik zo maak wat jij bedoelt :S
Ik heb een nieuwe tabel gemaakt.. Het script gaat in deze tabel in 2 collomen iets inzette,
1, ID
2, IP
Het script selecteerd de ID die bij de poll hoort en je IP, staat die er in dan word je doorverwezen naar results..

Nu is het probleem, als ik op die pagina ga dan word ik doorverwezen terwijl php_poll_ip heelemaal leeg is..

Ik heb nu dit:


$ip = $_SERVER['REMOTE_ADDR'];

$sqla = "SELECT ip FROM php_poll_ip WHERE ip = '$ip' AND id = '$id'";
$res = mysql_query($sqla) or die(mysql_error());;

if ($res >= 1){
header("Location: results.php?id=$id");
exit;
} 



Dat lukte niet..
ik deed dit:

$ip = $_SERVER['REMOTE_ADDR'];

$sqla = "SELECT * FROM php_poll_ip WHERE ip = '$ip' AND id = '$id'";
$res = mysql_query($sqla) or die(mysql_error());;

if ($res >= 1){
echo '
Stats:<br>
sqla = '.$sqla.' <br>
res = '.$res.'
';
exit;
}


en kreeg dit te zien:

Stats:
sqla = SELECT * FROM php_poll_ip WHERE ip = '80.61.229.220' AND id = '1'
res = Resource id #7

<?
$res = mysql_query($sqla) or die(mysql_error());;

if ($res >= 1){
?>

vervangen door:

<?
$res = mysql_query($sqla) or die(mysql_error());;
$aantal=mysql_num_rows($res);
if ($aantal ==1)// kan namelijk nooit groter zijn :)
{
?>

Reageren