IP -Sperre

Yoda

Gesperrt
Tag auch,
Ich habe mir bereits das Ip-Sperre Tutorial von Holy Fly angesehen, jedoch wollte ich das lieber mit einer mySQL Datenbank lösen.
Meine Konkrete Frage ist wie ich überprüfen kann, ob etwas in einer Tabelle enthalten ist (in diesem Falle also die IP).
Kann mir da jemand helfenm ?
Danke schon mal
Pcnub
 
Ich möchte mal bemerken dass das Tutor von mir ist :-).
Btt: du machst eine Abfrage:
PHP:
$strSQLQuery = "SELECT ip, spalte1, spalte2.... FROM TABELLE 
WHERE ip = '$actIP'";
Jetzt überprüfst du, ob bei einem mysql_query ein Datensatz zurückgeliefert wurde.
 
Wenn ich jetzt also abfragen möchte ob die ip enthalten:


PHP:
$actIP = $_SERVER[REMOTE_ADDR];
$sql = "SELECT ip FROM TABLE WHERE ip = '$actIP'";
$ipAnfrage = "mysql_query($sql)";
if(!$ipAnfrage)
  {
   INSERT INTO TABLE SET
   ip = $_SERVER[REMOTE_ADDR];
   }
else
   {
    $ipCheck = "enthalten";
    }

Ich hoffe das ist so richtig
Gruss Pcnub
 
Zuletzt bearbeitet:
Könnte mir auch noch jemand sagen was für einen Spaltentypen man für eine ip verwenden sollte.
Pcnub
 
typ VARCHAR 15. VARCHAR deshalb, weil du keine Reine Zahl hast. Maximale Länge 15 deshalb, weil eine IP aus 4 3er Blöcken (12) + 3 Punkten zusammengesetzt ist.
 
Ja das Script sollte so laufen, da mysql_query() als Rückgabewert TRUE bzw FALSE hat. Ich persönlich arbeite jedoch immer mit mysql_num_rows und überprüfe das Ergebnis so. Sind aber ein paar Zeilen mehr Code.
 
Original geschrieben von leuchte
Ja das Script sollte so laufen, da mysql_query() als Rückgabewert TRUE bzw FALSE hat.
Funktionieren sollte das Script so, ja. Aber es ist doch so keine Lösung, da mysql_query() nur FALSE zurückgibt, wenn die Anfrage ungültig war, nicht aber, wenn die Ergebnismenge leer ist. Also sollte er doch lieber mit mysql_num_rows() arbeiten, wie Du ja schon erwähnt hast.
 
Ähm, wie bitte? Das Script sollte so funktionieren? :eek: Kann doch nicht euer ernst sein...

PHP:
$actIP = $_SERVER[REMOTE_ADDR]; // Schönheitsfehler: REMOTE_ADDR gehört in Anführungszeichen gesetzt
$sql = "SELECT ip FROM TABLE WHERE ip = '$actIP'";
$ipAnfrage = "mysql_query($sql)"; // Funktionsaufruf im String?
if(!$ipAnfrage)
  {
   INSERT INTO TABLE SET
   ip = $_SERVER[REMOTE_ADDR];
   // SQL-Abfrage einfach so mitten im Code? INSERT INTO TABLE SET => falsche Syntax
   // edit: Ok, hab mich getäuscht, INSERT INTO ... SET gibt's wirklich
   }
else
   {
    $ipCheck = "enthalten";
    }
Na ja...

PHP:
$actIP = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT ip FROM tabelle WHERE ip = '$actIP'";
$ipResult = mysql_query($sql);

if (mysql_num_rows($ipResult) == 0) {
   mysql_query("INSERT INTO tabelle (ip) VALUES ('$actIP')");
} else {
   $ipCheck = "enthalten";
}
So schon eher... HTH
 
Zuletzt bearbeitet:
Zurück