Kleine Probleme mit Script

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kleine Probleme mit Script

    Hi, ich hab ein paar kleine Probleme mit einem Script:
    #1: Die Variable $ip wird durch unset($ip); nicht gelöscht
    #2: ER macht nach jedem Eintrag nicht nur EINEN Zeilenumbruch, sondern zwei, sodass eine Leerzeile zwischen dien verschiedenen $ip entsteht (is ja Platzverschwendung). Ich haber aber nur ein \n und entferne die anderen auch vorher mit chop().

    Unten seht ihr das Script, es ist alles noch rudimentär, aber es soll mal ein counter werden. Formular und php-code sind in der gleichen Datei.

    Code:
    <html>
    <head>
    </head>
    <body>
    <form action="counter.php" method="post">
    <input type="text" name="ip">
    <input type="submit">
    </form>
    </body>
    </html>
    PHP-Code:
    <?
    $fp = fopen('counter_daten.txt', 'r+');

    while( !feof($fp) )
           {
            $array[] = fgets($fp, 256);
           }

    $array[0] += 1;

    if( isset($ip) ){
        $array[] = $ip;
        unset($ip);
    }

    rewind($fp); ftruncate ($fp, 0);

    for($i=0; $i<count($array); $i++){
         $array[$i] = chop($array[$i]);
         fputs($fp, "$array[$i]\n");
         echo $array[$i].'<br>';
    }
    fclose($fp);

    ?>
    Danke schonmal!

  • #2
    zu 2.

    versuch mal statt chop
    PHP-Code:
         $array[$i] = str_replace("\n","",$array[$i]); 
    gruss

    rth
    H I L F E
    GD FreeType Antialising
    Gesuch PHP Entwicklungsumgebung
    ------------------------------------------
    Der Cmabrigde rael tset, sruf whoin du wlilst

    Kommentar


    • #3
      besser
      PHP-Code:
      $array[$i] = str_replace(array("\n","\r"),array("",""),$array[$i]); 
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Hat leider net geholfen, aber ich habs anders gelöst. Gibt trotzdem schon wieder neue Probleme:

        Neue Datei:
        PHP-Code:
        <?
        $fp = fopen('counter_daten.txt', 'r+');
        $zeit = time();

        //Zeilenweises Einlesen; wenn Zeit abgelaufen, ip+alteZeit nicht in neue Daten aufgenommen
        while( !feof($fp) )
               {
                $daten = fgets($fp, 256);
                $werte = explode(',', $daten);
                if( $werte[1]<$zeit ) $neu[] = $daten;
               }

        //Besucherzahl erhöhen
        $neu[0] += 1;

        //Testweise neuen Besucher anlegen
        $ip = rand(1,100);
        $ablauf = time()+3000;
        if( isset($ip) ){
            $neu[] = "$ip,$ablauf";
            unset($ip);
        }

        //Datei leeren
        rewind($fp); ftruncate ($fp, 0);

        //Daten neu schreiben
        for($i=0; $i<count($neu); $i++){
             $neu[$i] = chop($neu[$i]);
             fputs($fp, "$neu[$i]");
             if( $i<count($neu)-1 ) fputs($fp, "\n");
             echo $neu[$i].'<br><br>';
        }
        fclose($fp);
        ?>
        So sollte der inhalt von counter_daten.txt aussehen:
        Code:
        87
        50,1063982448
        25,1063982475
        67,1063982475

        Allerdings funktioniert das Überprüfen ganz am Anfang noch nicht richtig.
        "if( $werte[1]<$zeit ) $neu[] = $daten;"
        Angenommen ich ersetze die Zeile mit
        "if( 1<2 ) $neu[] = $daten;
        dann funktioniert alles.

        ???

        Kommentar

        Lädt...
        X