PHP .txt auslesen und script zusammenführen

  • PHP

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    PHP .txt auslesen und script zusammenführen

    Hallo,

    ich möchte ein kleines script schreiben, das überprüft ob der User neu ist.
    Das möchte ich über Ip-Check überprüfen.

    Also mit dem Code schreibe ich die Ip in einen .txt bzw. .html Datei:


    PHP-Quellcode

    1. <?php
    2. $ip = $_SERVER['REMOTE_ADDR'];
    3. $pagina = $_SERVER['REQUEST_URI'];
    4. $datum = date("d-m-y / H:i:s");
    5. $invoegen = $datum . " - " . $ip . " - " . $pagina . "</ br>";
    6. $fopen = fopen("ips.txt", "a");
    7. fwrite($fopen, $invoegen);
    8. fclose($fopen);
    9. ?>


    Nun möchte vorher testen, ob sich die IP schon in der .txt befinden.
    Leider funktioniert der nachfolgende Code nicht:


    PHP-Quellcode

    1. <?php$content = file("ips.txt");$ipFound = false;$myIP = $_SERVER['REMOTE_ADDR'];
    2. foreach($content as $line) { if(trim($line) == $myIP) $ipFound = true;}
    3. if($ipFound) { echo "vorhanden";} else { echo "Nicht gefunden";}
    4. ?>


    Auch wenn ich meine IP korrekt in die .txt kopiere - bekomme ich ein "Nicht gefunden" ausgegeben.
    Würde mich über Hilfe sehr freuen!
    Text Datei Einlesen und mit strpos("aktuelle ip", "ip liste") !== false prüfen ob sich die IP bereits in der Liste berfindet.

    Ansonsten kann deni Code nicht klappen, weil deine Zeile in der Textdatei z.B. so aussieht

    Quellcode

    1. 27-11-2012 / 10:52:32 - 127.0.0.1 - google.de<br />


    Prüfen tust du allerdings eine Zeile NUR auf die IP und das

    PHP-Quellcode

    1. if("27-11-2012 / 10:52:32 - 127.0.0.1 - google.de<br />" == "127.0.0.1")


    nicht klappt sollte man doch sehen oder??
    Hallo Dodo,

    vielen Dank für deine Antwort. Wenn man php kann, sieht man das bestimmt, jedoch ist das meine erste "Programmierung";) in php. Daher sry für das doofe Fragen.

    Dein Tipp hat mir aber sehr geholfen!

    Edit:
    Hmm leider kriege ich jetzt immer die IP sein vorhanden ausgegeben, auch wenn sie nicht vorhanden ist.
    gibst du mir noch einen Tipp?! :)


    PHP-Quellcode

    1. <?php$content = file("ips.txt");$myIP = $_SERVER['REMOTE_ADDR'];$pos = strpos( $content, $myIP);
    2. if ($pos !== false) { echo "IP vorhanden";} else { echo "IP nicht vorhanden"; }
    3. ?>



    Edit by Dodo:
    Doppel Posts sind laut Boardregeln nicht gestattet und auch nicht nötig, es gibt die Editierfunktion
    -> Beiträge zusammengefügt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()

    Das hat nichts mit PHP zu tun, sondern allgemein Programmierung bzw. logischem Denken, das ist ja eine If-Bedingung in der was geprüft wurd

    Quellcode

    1. Wenn A gleich B ist dann


    und das A nunmal NICHT B ist sieht man ja an den Strings die man dort einfügt.

    Wegen des Scripts, dann machst du was falsch, bei mir funktioniert es.

    PHP-Quellcode

    1. <?php
    2. $content = "27-11-2012 / 10:52:32 - 192.168.0.1 - web.de<br />
    3. 28-11-2011 / 10:52:32 - 23.54.2.54 - gmx.de<br />
    4. 29-11-2012 / 10:52:32 - 127.0.0.1 - google.de<br />";
    5. $myIP = $_SERVER['REMOTE_ADDR'];
    6. if(strpos($content, $myIP) !== false) {
    7. echo "IP vorhanden";
    8. } else {
    9. echo "IP nicht vorhanden";
    10. }
    11. ?>


    Ansonsten formatiere dein Code mal vernünftig und nicht alles hintereinander, das kann ja irgendwann niemand mehr lesen.