Wie file() auslesen

roeb

Mitglied
Hallo,

ich möchte gern überprüfen ob die IP des Users schon in einer liste (ip.dat) steht oder nicht. Die IP hinzu zufügen ist kein Problem. Allerdings möchte ich den Inhalt von ip.dat in ein file array setzen. dabei nutze ich file( 'ip.dat' );

Allerdings kann ich nicht den Inhalt von $ip (is die ip des aktuellen users) mit dem array vergleichen weil ichs ne auf die reihe bekommen das array auszulesen. Hier mal mein Code den ich bis jetzt habe.

PHP:
<?php
$ip_user = $_SERVER['REMOTE_ADDR'];
$ip_array = file( 'data/ip.dat' );

if ($_SERVER['REMOTE_ADDR'] == $ip_array[])
{
	echo "ip vorhanden";
} else {
	echo "ip noch nicht vorhanden";
}
?>

Meine IP (127.0.0.1 in diesen fall) steht schon in der datei ip.dat ... Er er zeigt mir immer an ip noch nicht vorhanden.

Was mache ich falsch? :) Hoffe ihr könnt mir helfen :)

roeb
 
habs mal probiert bringt aber auch nix :/ Hier der code:

PHP:
<?php
$ip_list = "data/ip.dat";
$ip_user = $_SERVER['REMOTE_ADDR'];
$ip_array = file( 'data/ip.dat' );

$array = array($ip_array);
if (in_array($ip_user, $array)) {
	echo "ip gefunden";
} else {
	echo "ip nicht gefunden";
}
?>

$ip_array = file( 'data/ip.dat' ); <-- das erzeugt doch schon ein array, wieso also nochmal in ein array.

die lösung die bei file() beschrieben ist kann ich leider ne umsetzen, weil ich keine ahnung habe wie ich das auf mein problem anwenden soll :(
 
musst mit array_key_exists prüfen

also
Code:
<?php
$ip_user = $_SERVER['REMOTE_ADDR'];
$ip_array = file( 'data/ip.dat' );

if (array_key_exists($_SERVER['REMOTE_ADDR'], $ip_array))
{
    echo "ip vorhanden";
} else {
    echo "ip noch nicht vorhanden";
}
?>
 
PHP:
<?php
$ip_list = "data/ip.dat";
$ip_user = $_SERVER['REMOTE_ADDR'];
$ip_array = file( 'data/ip.dat' );

if (array_key_exists($ip_user, $ip_array)){
	echo "ip gefunden";
} else {
	echo "ip nicht gefunden";
}

und er gibt mir trotzdem immer aus "ip nicht gefunden" obwohl die mehrmals sogar in der datei ip.dat steht.
 
So eine Zeile besitzt auch ein \n....es wäre also unter Umständen mit [phpf]preg_grep[/phpf] arbeitest.

PHP:
IP 
<?php 
  echo(!preg_grep('|^\s*'.preg_quote($_SERVER['REMOTE_ADDR']).'\s*$|',file('data/ip.dat')))?'nicht':'';
?> 
gefunden
 
Hallo,

schreib den CODE einmal so:
PHP:
<?php 
$ip_user = $_SERVER['REMOTE_ADDR']; 
$ip_array = file('data/ip.dat'); 
if (in_array($ip_user, $ip_array)) { 
echo "ip gefunden"; 
} else { 
echo "ip nicht gefunden"; 
} 
 
?>
 
PHP:
<?php
$ip_user = $_SERVER['REMOTE_ADDR'];
$ip_array = file( 'data/ip.dat' );
foreach($ip_array as $key => $wert)
{
    if ($wert == $_SERVER['REMOTE_ADDR'])
    {
        $ip = true;
    }
    else
    {
        $ip = false;
    }
}
if ($ip)
{
    echo "Die IP ist vorhanden";
}
else
{
    echo "Die IP ist neu";
}

?>
 
Danke für eure schnelle Hilfe aber das bringt mich irgendwie nicht weiter, überall sagt er "IP nicht vorhanden" etc. obwohl ip drin steht.

wenn ich zB echo $ip_array[1]; mache gibt der mit 127.0.0.1 aus.

also stimmt der pfad zur datei und der inhalt.

mhh sitz seit 12 uhr an dem problem ^^
 
Zurück