Nicht gewollter Umbruch in Textdatei beim IE

Hallo Leute,

ich habe mal wieder ein Problem - finde die Lösung aber einfach nicht.

Ich habe eine Textdatei, in der ich per Knopfdruck umstellen möchte, ob ein Mitglied den Beitrag bezahlt hat oder nicht.

Das ganze funktioniert auch (fast) gut, allerdings habe ich beim Internet Explorer das Problem, das er beim Schreiben in die Datei einen Umbruch zuviel "übergibt" und mir die ganze Textdatei zerschießt ... der Mozilla macht es perfekt. (siehe Anhänge ie.gif und mozilla.gif)

Was mache ich nun falsch ?!

Ich habe es beim Schreiben in die Datei sowohl mit \n also auch mit \r\n versucht ... aber bei beiden Versionen habe ich dieses Problem.

Kann jemand mal meinen Php-Code untersuchen und mir sagen wo der Fehler liegt ?!

Vielen Dank !

Jörn

PHP:
      if ((isset($_REQUEST['status_aendern'])) AND (($_REQUEST['status_aendern'])=="ja"))  
           {
           $zaehler=$_POST['zaehler']-1;              # Zeile der Textdatei die geaendert werden soll 
           $nick_name=$_POST['nick_name'];          # Nachfolgend die einzelnen Werte der Zeile
           $real_vorname=$_POST['real_vorname'];
           $real_nachname=$_POST['real_nachname'];       
           $ip_adresse=$_POST['ip_adresse']; 
           $bezahlt=$_POST['bezahlt'];   
           $anwesend=$_POST['anwesend'];         
           if ($bezahlt=='ja')                      # Neuer Bezahlt-Status
               $bezahlt_neu="nein";
           ELSE
               $bezahlt_neu="ja";               
           // Die neue Zeile wird erstellt
           $neue_zeile[] = "$nick_name;$ip_adresse;$real_vorname;$real_nachname;$bezahlt_neu;$anwesend\n";
           // Die Datei wird ausgelesen und in einem Array gespeichert
           $datei="../txt/ip_liste.txt";
           $inhalt = file($datei);
           // Anzahl der Zeilen wird ausgelesen
           $num=sizeof($inhalt);
           // Wenn die Schleife die zu aendernde Zeile erreicht, wird diese im Array gegen den neuen Inhalt ausgetauscht
           for ($i=0; $i<$num; $i++)
                  {
                  if($i==$zaehler)
                          {
                          $inhalt[$zaehler] = $neue_zeile[0];
                          }
           // Textdatei zum Überschreiben öffnen und schreiben
           $fp = fopen("$datei","w"); 
           fwrite($fp,implode($inhalt));
           fclose($fp);            
           }
 

Anhänge

  • mozilla.gif
    mozilla.gif
    9,7 KB · Aufrufe: 33
  • ie.gif
    ie.gif
    10 KB · Aufrufe: 30
Na toll ...

manchmal muss man wohl sein Problem erstmal für andere Leute formulieren um selbst auf die Lösung zu kommen ...

:p

ich habe einfach im letzten Array Eintrag ($anwesend) noch ein \n aus der Textdatei übernommen und dann wieder mit eingetragen und somit eine zusätzliche Zeile erstellt.

das hab ich mit dem trim($anwesend) Befehl gelöst und diesen Umbruch somit entfernt.

Jetzt passts !

Nur komisch, dass der Mozilla dieses Problem nicht erkannt hat .... :rolleyes:
 
Zurück