Inhalt einer *.txt wird gelöscht?

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

  • Inhalt einer *.txt wird gelöscht?

    So bin neu hier im Forum und auch noch relativ neu in PHP. Ich habe ein Problem mit einem kleinen Script und habe bis jetzt noch nirgendwo eine Antwort auf mein Problem gefunden.

    Ich hab ein kleines Umfragenscript gebastelt welches eine kleine Reloadsperre beinhaltet. Die IP des Besuchers wird in der ip.txt gespeichert! In der ip.txt befindet sich nur die IP des letzten Besuchers (ja ich weiß ist nicht die beste Methode )

    Hier mal das Script:
    PHP-Code:

    //ip ermitteln
    $ip="$REMOTE_ADDR"
       
    $ipdatei=fopen("umfragei/ip.txt","r");
          
    $groesse=filesize("umfragei/ip.txt");
          
    $ip2=fread($ipdatei,$groesse);
       
    fclose($ipdatei);

    //ip vergleichen
    if ($ip==$ip2){
       print(
    "Sie haben schon abgestimmt.");
    }

    //neue ip einschreiben
    else{
      
    $ip="$REMOTE_ADDR"
      
    $ipdatei=fopen("umfragei/ip.txt","w");
     
    fwrite($ipdatei,$ip);
    fclose($ipdatei); 
    ZUM PROBLEM:

    Also erstaml das merkwürdigste: LOCAL funktioniert alles einwandfrei! Stell ich das Script jedoch online und schreibe in die ip.txt bereits eine IP hinein damit fread(); funktioniert, geht das Script genau einmal,
    Durch ausführen des Scriptes wird die ip in der ip.txt gelöscht und das dokument ist leer. Beim wiederholten Aufrufen des Scriptes entsteht dann wegen fread(); ein Fehler.

    Wieso wird der Inhalt gelöscht?
    Wie gesagt local ist das nicht der Fall, Chmod kann ich ausschließen, ebenso eine erschöpfung der Disk-Quota.

    Die Fehlermeldung:
    Warning: fread(): Length parameter must be greater than 0. in /srv/www/htdocs/web335/html/check.php on line 433

    -> weil eben der Inhalt der ip.txt weg ist...


    Nochmal kurze Zusammenfassung:

    Es wird keine NEUE ip in die ip.txt geschrieben sondern NUR die alte gelöscht.

    M.f.G
    Max

    ps:
    Nochmals weil es oft falsch verstanden wurde:
    Bevor des erstmaligen Ausführen des Scriptes befindet sich schon eine ip in der ip.txt, deshalb geht der script auch das erste mal ohne Fehlermeldung, jedoch befindet sich danach keine mehr in der ip.txt!
    Zuletzt geändert von mexxfly; 13.07.2005, 00:11.

  • #2
    versuchs mal mit $_SERVER['REMOTE_ADDR'] ... schätze, du hast lokal eine etwas veraltete einstellung
    Kissolino.com

    Kommentar


    • #3
      bekomme dann direkt eine Fehlermeldung auf die erste Zeile

      Zeile:

      Fehler: $ip="$_SERVER['REMOTE_ADDR']";

      Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /srv/www/htdocs/web335/html/check.php on line 430

      Kommentar


      • #4


        welches verstrahlte buch/tutorial bringt euch eigentlich bei, variablen in " " zu setzen?
        PHP-Code:
        $ip=$_SERVER['REMOTE_ADDR']; 
        besser ist das. abgesehen davon, warum überträgst du eine var in eine andere?
        Kissolino.com

        Kommentar


        • #5
          Original geschrieben von mexxfly
          bekomme dann direkt eine Fehlermeldung auf die erste Zeile

          Zeile:

          Fehler: $ip="$_SERVER['REMOTE_ADDR']";

          Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /srv/www/htdocs/web335/html/check.php on line 430


          EDIT:

          Komisch mit $ip = getenv('REMOTE_ADDR'); hats geklappt

          thx

          Kommentar


          • #6
            siehe oben ^^ und informiere dich über "register_globals"
            Kissolino.com

            Kommentar


            • #7
              Original geschrieben von Wurzel
              siehe oben ^^ und informiere dich über "register_globals"
              weiß schon bescheid, kann sie aber nicht auf on knipsen weil ich keine Zugriffe auf die .ini hab . Müsste direkt den Provider fragen.
              Wusste aber nicht des es bei dieser Funktion das gleiche ist.

              Warum ich die Variable unter " " gesetzt habe weiß ich nicht, tu ich normal auch nicht


              nochmals Danke
              m.f.g
              Max

              Kommentar


              • #8
                Gewöhn dir an das ganze zu machen ohne register_globals auf "on" zu "knippsen" - Also immer schön $_GET, $_POST und $_SERVER verwenden. Register_Globals ist seit PHP 4.2.x standardmässig aus....

                Kommentar

                Lädt...
                X