kostenloser Webspace werbefrei: lima-city


PHP Zeilenumbruch

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mifa

    Kostenloser Webspace von mifa

    mifa hat kostenlosen Webspace.

    Hallo, wir behandeln gerade in der Schule PHP und haben eine Aufgabe bekommen, in dem wir in eine Textdatei einen Benutzernamen und ein Passwort eingeben. Nun muss bei jedem neuen Benutzernamen in eine neue Zeile gesprungen werden. Mein Code:
    <?php
    $datei = 'Passwort.txt';
    $Name = $_POST['Name'];
    $Passwort = $_POST['Passwort'];
    if ( file_exists ( $datei ) )
    {
     $file = fopen($datei, "r+");
    }
    else
    {
      fopen ($datei, "a+");
      $file = fopen($datei, "r+");
      fclose($file);
      $First_Check = true;
    }
    
    $file = fopen($datei, "r+");
    
    while (!feof($file))
    {
    $Inhalt = $Inhalt . fgets($file, 1000);
    }
    
    $Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort;
    print($Inhalt);
    rewind($file);
    fwrite($file, $Inhalt);
    fclose($file);
    ?>


    Bei
    $Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort;

    wird der momentane Inhalt und der neue Eintrag geschrieben. Aber irgendwie funktioniert der Zeilenumbruch "\n" nicht. Ich habe auch schon \r\n versucht. Geht auch nicht. Wie kann man also einen Zeilenumbruch machen?
    Übrigens benutze ich zum umwandeln XAMPP.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. computertechnikforum

    Kostenloser Webspace von computertechnikforum, auf Homepage erstellen warten

    computertechnikforum hat kostenlosen Webspace.

    mifa schrieb:
    &lt;?php
    $datei = 'Passwort.txt';
    $Name = $_POST['Name'];
    $Passwort = $_POST['Passwort'];
    if ( file_exists ( $datei ) )
    {
     $file = fopen($datei, "r+");
    }
    else
    {
      fopen ($datei, "a+");
      $file = fopen($datei, "r+");
      fclose($file);
      $First_Check = true;
    }
    
    $file = fopen($datei, "r+");
    
    while (!feof($file))
    {
    $Inhalt = $Inhalt . fgets($file, 1000);
    }
    
    $Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort;
    print($Inhalt);
    rewind($file);
    fwrite($file, $Inhalt);
    fclose($file);
    ?&gt;



    1. Die if abfrage, ob die Datei existiert ist unnötig: a+ erzeugt eine neue Datei falls keine vorhanden ist und setzt die Schreibmarke (mir fällt kein besseres Wort ein) ans Ende. Kurz alles von if bis zu der } des else-Zweiges weg und bei dem fopen-Befehl danach statt r+ a+.

    2. Zeilenumbrüche kannst du verschieden machen (einfach alle Varianten durchtesten):

    2.1
    fwrite($file, "
    " . $Name . ":" . $Passwort);

    (Ja der Zeienumbruch muss da hin!)
    Ist die "dreckige Lösung"

    oder

    2.2
    Du erzeugst dir eine Konstante, die den Zeilenumbruch erzeugt.
    define("CRLF",chr(13).chr(10)); //Definiert die Variable
    fwrite($datei,$string . CRLF); //Gibt $string und einen Zeilenumbruch aus


    WICHTIG: die zweite Lösung funktioniert nur bei Windows-Systemen (von denen du aber eins hast, sagt zumindest meine Kristallkugel).

    Beitrag zuletzt geändert: 29.9.2009 20:23:58 von computertechnikforum
  4. Geht auch mit \n oder habe ich da jetzt was falsch verstanden?

    $zeile="Passwort|-|Benutzer\n";
  5. Autor dieses Themas

    mifa

    Kostenloser Webspace von mifa

    mifa hat kostenlosen Webspace.

    Nein, das geht nicht. Ich habs schon versucht. Auch \r\n geht nicht.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!