Probleme bei Array durchsuchen

schoeneberger

Grünschnabel
Hallo,

bin gerade dabei ne ip-sperre zu programmieren. Die ip's werden in einer textdatei gespeichert. jetzt hab ich probleme, die liste der ip's zu durchsuchen und auszugeben, ob die ip des aktuellen nutzers darin enthalten ist. hier mein code:
PHP:
$ipadresse ="$REMOTE_ADDR";
$ip = file("sperre.txt");

if (in_array($ipadresse, $ip)) {
    echo "IP enthalten";
}
habe meine ip eingetragen, aber ich bekomme keien bestätigung ausgegeben, woran liegt es?
 
Mit einem weglassen der Anführungszeichen um $REMOTE_ADDR sollte es funktionieren.

VG,
Maeg
 
Zuletzt bearbeitet:
danke für deine Hilfe, aber es hat nichts verändert, bekomme keine Bestätigung angezeigt.

PHP:
$ipadresse = $REMOTE_ADDR;
$ip = file("sperre.txt");

if (in_array($ipadresse, $ip)) {
    echo "IP enthalten";
}

Woran könnte es liegen, bzw. wie könnte ich es anders lösen.
 
Lass Dir doch mal alles ausgeben und poste die Ergebnisse..

PHP:
<?php

....
....
print_r($ip);
echo $ipadresse;

?>
 
ich bekomme folgende Ausgabe:

Array ( [0] => 8 [1] => 6 [2] => 8 [3] => 9 [4] => 84.178.45.199 ) 84.178.45.199

sind vielleicht die Punkte dazwischen das Problem?
 
Nope, fie Punkte solltens nicht sein. Aber gib mal $ip mit var_dump() aus, um zu sehen ob noch leerzeichen etc vorhanden sind.
Dasselbe mit $ipadresse. Nicht mittels echo sondern mittels var_dump()
 
Ja ok, hinter den Zahlen im array ist jeweils ein leerzeichen,wie kommt das, ich hab die manuell eingegeben, so dass jede Zahl in einer Reihe steht, aber ohne leerzeichen. Wie bekomm ich die weg? bzw, wie bekomm ich bei der abfrage eins hintendran?

array(5) { [0]=> string(2) "8 " [1]=> string(2) "6 " [2]=> string(2) "8 " [3]=> string(2) "9 " [4]=> string(14) "84.172.33.199 " } string(13) "84.172.33.199"

Danke für eure hilfe
 
Ganz trivial könntest Du es so machen:

PHP:
<?php

foreach( $array as $key => $value) {
$array[$key] = trim($value);
}

?>

Gibt auch schönere Varianten, funktioniert aber..

Gruß
 
ok und bei mir müsste es heißen:

PHP:
foreach( $ip as $key => $value) {
$ip[$key] = trim($value);
}
und müsste direkt vor die if anweisung, oder?

Danke es hat funktioniert******
 
Zuletzt bearbeitet:
Müsste eigentlich so gehenum alle Leerzeichen aus dem Array zu entfernen
PHP:
$trimmed_ips = array_map('trim', $ip);
 

Neue Beiträge

Zurück