Chrissyx Homepage Forum
Register FAQ Search Who is online? Member list Today's posts Login

Willkommen bei Chrissyx Homepage Forum! Falls dies Ihr erster Besuch hier ist, lesen Sie sich bitte die Hilfe mit den häufigsten Fragen und ausführlichen Erklärungen durch! Falls Sie an den Diskussionen teilnehmen wollen, sollten Sie sich registrieren oder, falls Sie das schon getan haben, sich einloggen. Wir wünschen Ihnen viel Spaß!

 Chrissyx Homepage Forum » Entwicklung » [PHP] Falscher Rückgabewert der Funktion   

Author Topic: [PHP] Falscher Rückgabewert der Funktion
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on July 24, 2008 02:11 PM (#1) HP PM E-mail Quote
Hi,

ich schreibe gerade an einem kleinen Counter. Die folgende Funktion soll überprüfen ob die aktuelle IP schon in der Sperrliste (ip.dat) steht:


function valid_ip(){
if (in_array($_SERVER['REMOTE_ADDR'], file("ip.dat" ))) return false;
else return true;
}


Obwohl die Remote Adresse und die ip.dat richtig ausgelesen bzw. erkannt werden, gibt die Funktion immer true zurück... Hat einer ne Idee woran das liegen kann?

Danke =)

//Edit: Darstellung verbessert

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on July 24, 2008 03:03 PM (#2) HP PM E-mail Quote
Edit:

So gehts, da haben sich ein paar Leerzeichen eingeschlichen:


function trim_value(&$value)
{
$value = trim($value);
}

function valid_ip(){
$foo = file("ip.dat");
array_walk($foo, 'trim_value');
if (in_array($_SERVER['REMOTE_ADDR'], $foo)) return "false";
else return "true";
}

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on July 24, 2008 04:04 PM (#3) HP PM E-mail Quote
Das geht noch viel eleganter:

function valid_ip()
{
if(in_array($_SERVER['REMOTE_ADDR'], array_map('trim', file('ip.dat')))) return false;
return true;
}


:)

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on July 24, 2008 09:24 PM (#4) HP PM E-mail Quote
Cool, danke =)

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on July 25, 2008 12:55 PM (#5) HP PM E-mail Quote
Kann ich da auch irgendwie Substr statt Trim anwenden?

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on July 25, 2008 06:27 PM (#6) HP PM E-mail Quote
Aber sicher, nur ist array_map() mit einer Funktion mit mehreren Parametern etwas schwierig zu verstehen. Hier mal ein Beispiel für substr($str, 13, 37) auf jedes Element (=$str) in ip.dat angewendet:

$ips = file('ip.dat');
$size = count($ips);
array_map('substr', $ips, array_fill(0, $size, 13), array_fill(0, $size, 37));

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved

  

| Chrissyx Homepage | Board rules


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Site created in 0.057605 seconds
Processed 16 files
gzip compression enabled
2486.85 KiB memory usage