In einer while Schleife eine if Abfrage?!

cameeel

Erfahrenes Mitglied
Ich versuche gerade zu überprüfen ob die IP eines Besuchers bereits in der Datenbank steht und zwar so:
PHP:
         $info->remote_addr = getenv("REMOTE_ADDR");
         
           include("de/dbconnect.php");
         
         $abfrage = "SELECT ip, time FROM ips ORDER BY time ASC";
         $ergebnis = mysql_query($abfrage);
         
         while($row = mysql_fetch_object($ergebnis))
         	{
         
         		   if($row->ip == $info->remote_addr)
         		   { 
 		echo "<br><br>Deine IP wurde <u>nicht</u> gespeichert da diese zuvor schon eingetragen wurde!";
         		   exit;
         		   } 
         
         	}

Ich hab nun irgendwie das Gefühl das das nicht funktioniert weil die Meldung "Deine IP wurde nicht.." auch dann kommt wenn die IP noch nicht in der DB steht?!
Und es kommt eben keine Fehlermeldung...

Noch ne Frage nebenbei: Seh ich das schon richtig, dass der Befehl "exit;" dafür sorgt, dass der ganze Script abgebrochen wird?

thx.. - cAm3eel
 
Wenn das Script deiner Feder entstammt, solltest du eigentlich wissen, was das Script im Einzelnen bewirkt.

Des Weiteren schlage ich dir eine grundlegende Verbesserung vor:
PHP:
<?php
	[…]
	$info->remote_addr = getenv('REMOTE_ADDR');
         
	include('de/dbconnect.php');
         
	$abfrage = "
		SELECT
			COUNT(`ip`) AS `count`,
		        `time`
		  FROM
		        `ips`
		  WHERE
		        `ip` = '".$info->remote_addr."'
		";
	$ergebnis = mysql_query($abfrage);

	if( mysql_num_rows($ergebnis) >= 1 ) {
		echo '<br><br>Deine IP wurde <em>nicht</em> gespeichert da diese zuvor schon eingetragen wurde!';
		exit;
	}
	[…]
?>
 
cAm3eel hat gesagt.:
Noch ne Frage nebenbei: Seh ich das schon richtig, dass der Befehl "exit;" dafür sorgt, dass der ganze Script abgebrochen wird?
So steht es in der Doku zu [phpf]exit[/phpf]

Was das Vorhandensein-Problem betrifft, schließe ich mich Gumbo fast an. Das Count tut bei der Abfrage ohne GROUP BY nicht wirklich Not, da das Ergebnis von Count am Ende aus [phpf]mysql_num_rows[/phpf] gezogen wird.
 
So ganz versteh ich zwar noch nicht was Gumbo da geschrieben hat, vor allem die DB Abfrage.. :-)
Wenns da noch mehr Probleme gibt meld ich mich nochma gg

PS: Ich hab das schon selbst geschrieben, kann PHP aber einfach noch nicht so gut und schon gar nicht mit MySQL :-)

MfG
cAm3eel
 
Zurück