Zum Inhalt springen

Energiequant

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

  1. Tut mir leid, daß ich nicht früher geantwortet habe. Erstmal danke für Eure Mühe, ich werd die Sachen nachher mal ausprobieren. is_element habe ich mir selbst geschrieben (php.net war gerade down, sodaß ich nicht suchen konnte). Ich mache darin nichts anderes als ein übergebenes Array mit foreach zu durchlaufen und im Falle eines Fundes 1, andernfalls 0 zurückzugeben. Daß PHP 2 Endzeichen, \n und \0 in geladenen Textdateien hat, ist mir neu. Bisher habe ich hier mein selbst geschriebenes eliminate_endchar benutzt: function eliminate_endchar($with) { $without=array(); foreach ($with as $element) { $without=array_merge($without,array(substr($element,0,-1))); } return $without; } [/PHP] Was mir im Nachhinein noch einfiel, ist, daß evtl. das -1 den Fehler verursacht und besser durch ein strlen($element)-1 ersetzt werden sollte. Ansonsten noch eine Frage zu Hobbes: substr($ListedIp,0,2) - heißt das nicht eigentlich, daß Du die ersten 2 Zeichen nimmst statt die letzten wegzulassen oder bin ich jetzt grad total durch den Wind? Übrigens scheint mein Fehler sporadischer Natur zu sein - an einer anderen Stelle trat er nochmals auf (wieder identische Zeilen) und ich musste ihn durch einen Workaround (an die Suche ein \n anhängen) umgehen. Diesmal ging das, während es bei is_blocked keine Besserung brachte. Eigenartigerweise (ich hab nichts an den dort aufgerufenen Funktionen oder Dateien geändert) funktionierte dieser Workaround ein paar Stunden später nicht mehr. Als ich ihn entfernte lief alles bestens. Ob auch is_blocked in seiner ursprünglichen Form wieder geht hab ich bisher nicht weiter getestet, aber seltsam ist es schon.
  2. Hi! Ich habe hier 2 Funktionen is_blocked und block_ip. Beide haben gemeinsam, daß sie zunächst eine Datei laden, welche hintereinander IP-Adressen gespeichert hat. Diese Datei wird - in block_ip - per fwrite($file,$element."\n") geschrieben, besitzt also nach jeder IP-Adresse \n als Zeilentrenner. Beim Ladevorgang werden aus dem beim Laden mittels file entstehenden Array über eliminate_endchar die Zeilenendzeichen aller Elemente eines eindimensionalen Arrays entfernt (substr($element,0,-1)). Das funktioniert eigentlich auch überall, nur irgendwie nicht in is_blocked: function is_blocked($ip) { // FIXME: irgendwie wird \n nicht eliminiert $lines = file("data/block_ip.dat"); $block=eliminate_endchar($lines); //return is_element($ip,$block); return 0; // NOTE: funktion is_blocked deaktiviert } function block_ip($ip) { $lines = file("data/block_ip.dat"); $block=eliminate_endchar($lines); if (is_element($ip,$block)==0) { $block=array_merge($block,array($ip)); } $file = fopen("data/block_ip.dat","w"); foreach ($block as $element) { fwrite($file,$element."\n"); } fclose($file); recalc_all_avgs(); } [/php] Die Datei wird korrekt nach $lines geladen, jedoch werden die Zeilenendzeichen nicht entfernt. Eigenartigerweise funktioniert auch eine Suche is_element($ip."\n",$block) nicht, was theoretisch gehen sollte, wenn nur eliminate_endchar ein Problem hätte. Eigenartigerweise ist is_blocked die einzige Funktion mit dieser Macke, in allen anderen Funktionen läuft alles bestens. Zuerst dachte ich, daß evtl. ein Steuerzeichen den PHP-Interpreter verwirrt oder ich irgendwie einen Tippfehler reingehauen hätte. Also habe ich die (dort funktionierenden) Zeilen aus block_ip kopiert. Leider scheint das nicht das Problem zu sein. Einen Fehler an den verwendeten Funktionen schließe ich aus, da sie wie gesagt im kompletten restlichen Skript wunderbar funktionieren. Habt Ihr eine Idee, wo der Fehler liegen könnte? Für mich sieht das genau identisch aus. :confused: Danke.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...