Chrissyx Homepage Forum
Registrieren FAQ Suche Wer ist online? Mitgliederliste Heutige Beiträge Einloggen

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   

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



284-199-061
Errungenschaften
Erstellt am 24. Juli 2008 13:11 (#1) HP PN E-Mail Zitat
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

-----------------------
Beiträge: 3828 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 24. Juli 2008 14:03 (#2) HP PN E-Mail Zitat
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";
}

-----------------------
Beiträge: 3828 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 24. Juli 2008 15:04 (#3) HP PN E-Mail Zitat
Das geht noch viel eleganter:

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


:)

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


Beiträge: 15847 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 24. Juli 2008 20:24 (#4) HP PN E-Mail Zitat
Cool, danke =)

-----------------------
Beiträge: 3828 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 25. Juli 2008 11:55 (#5) HP PN E-Mail Zitat
Kann ich da auch irgendwie Substr statt Trim anwenden?

-----------------------
Beiträge: 3828 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juli 2008 17:27 (#6) HP PN E-Mail Zitat
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));

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


Beiträge: 15847 | Mitglied seit: November 2002 | IP-Adresse: gespeichert

  

| Chrissyx Homepage | Boardregeln


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Seite in 0,098029 Sekunden erstellt
16 Dateien verarbeitet
gzip Komprimierung eingeschaltet
2484,48 KiB Speichernutzung