anfängerprob mit einer counter-funktion

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

  • anfängerprob mit einer counter-funktion

    hallo leute!

    bin php-newbie und habe ein kleines problem bei einer funktion! ich möchte mittels skript alle unterschiedlichen ip-adressen meiner hp-besucher in ein textfile schreiben.

    hab folgendes skript
    PHP-Code:
    <?
    $archiv = "archiv.txt"; //IP-Adresse jedes Besuchers

    function archivIP($remArchiv_addr) {
        $ipArchiv_array = file($archiv);
        $reloadArchiv_dat = fopen($archiv, "w");
        for ($i=0; $i<sizeof($ipArchiv_array); $i++) {
            list($ipArchiv_addr, $timeArchiv_stamp) = split("\|", $ipArchiv_array[$i]);
            if ($ipArchiv_addr == $remArchiv_addr) {
                $found=1;
            }
            else{
                fwrite($reloadArchiv_dat,"$ipArchiv_addr|$time_stamp");
            }
        }
        fwrite($reloadArchiv_dat,"remArchiv_addr|$this_time\n");
        fclose($reloadArchiv_dat);
    }

    archivIP($REMOTE_ADDR);
    ?>
    so schaut das textfile aus:
    HTML-Code:
    62.179.27.206|1111057776
    leider schreibt es in mein textfile nix rein! ausgeführt wird das skript sicher und die berechtigungen fürs file sind auch richtig gesetzt!

    hab leider wenig ahnung von php! bin für jede hilfe dankbar!

    lg
    Alex
    Zuletzt geändert von lx_1; 17.03.2005, 12:38.

  • #2
    Hast du register_globals=on ??

    Wenn nein dann mal so probieren:
    PHP-Code:
    archivIP($_SERVER['REMOTE_ADDR']); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      leider! geht noch immer nicht!
      hab den code noch ein wenig geändert, aber er schreibt mir nichts ins file!
      PHP-Code:
      <?
      $archiv = "archiv.txt"; //IP-Adresse jedes Besuchers

      function archivIP($remArchiv_addr) {
          $found=0;
          $ipArchiv_array = file($archiv);
          $reloadArchiv_dat = fopen($archiv, "w");
          for ($i=0; $i<sizeof($ipArchiv_array); $i++) {
              list($ipArchiv_addr, $timeArchiv_stamp) = split("\|", $ipArchiv_array[$i]);
              if ($ipArchiv_addr == $remArchiv_addr) {
                  $found=1;
              }
          }
          if($found==0) {
          fwrite($reloadArchiv_dat,"remArchiv_addr|$this_time\n");
          fclose($reloadArchiv_dat);
          }
          fclose($reloadArchiv_dat);
      }

      archivIP($_SERVER['REMOTE_ADDR']);
      ?>
      vielleicht stimmt auch was mit dem code nicht! wie gesagt, kenn mich in php net wirklich aus...

      Kommentar


      • #4
        vieleicht solltest du mal probieren diese vorher
        mit fopen zu öffnen ??
        Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

        Kommentar


        • #5
          Original geschrieben von Arni
          vieleicht solltest du mal probieren diese vorher
          mit fopen zu öffnen ??
          z.B

          $text = "Dieser Text wird gespeichert";
          $fp = fopen ("members.txt","w");
          fwrite($fp,$text,11);
          fclose($fp);$fp = fopen ("members.txt","r");
          $str = fgets($fp,30);
          fclose($fp);
          echo $str;

          Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

          Kommentar


          • #6
            aber mach ich das nicht mit
            PHP-Code:
            $reloadArchiv_dat fopen($archiv"w"); 

            aber ich probiers mal in deiner variante...

            Kommentar


            • #7
              soweit funktioniert jetzt alles. aber wie schaffe ich es, dass das skript immer eine zeile im textfile hinzufügt? er schreibt mir immer in die erste zeile bzw. löscht er mir den vorigen inhalt raus!

              PHP-Code:
              function archivIP($rem_addr) {

                  
              $ip_array file("archiv.txt");
                
              $reload_dat fopen("archiv.txt","w");
                
              $this_time time();
                for (
              $i=0$i<sizeof($ip_array); $i++) {
                  list(
              $ip_addr,$time_stamp) = split("\|",$ip_array[$i]);
               
                    if (
              $ip_addr == $rem_addr) {

                      
              fwrite($reload_dat"$ip_addr|$time_stamp\n");
                    }
                    else {
                      
              fwrite($reload_dat,"$rem_addr|$this_time\n");
                    }
                  }
               
               

                
              fclose($reload_dat);
               
              }

              archivIP($_SERVER['REMOTE_ADDR']); 
              kann mir bitte jemand helfen?

              Kommentar


              • #8
                ! fopen

                Kommentar


                • #9
                  @Tobi


                  Das steht da drin, scheu es Dir mal an und versuch es damit mal
                  'a'

                  Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
                  Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                  Kommentar


                  • #10
                    ah ja! [räusper]

                    sorry leute! habs jetzt mit r+ gemacht. und es funktioniert! ) hehe...

                    danke arni und tobi!

                    Kommentar

                    Lädt...
                    X