Stahl Florian: Zeilenumbruch in .txt funktioniert nicht

Hallo an alle,

Ich habe ein Formular, das beim Abschicken eine die Datei sslog.php ausfürht und den Inhalt in eine .txt datei schreibt. Eigentlich müsste dann nach jedem Datensatz ein Absatz gemacht werden.

if(!$_POST['datum']) {echo "<br>Datum nicht vergessen!";}
if(!$_POST['betreff']) {echo "<br>Betreff nicht vergessen!";}
if(!$_POST['nachricht']) {echo "<br>Nachricht nicht vegessen!";}
if(!$_POST['autor']) {echo "<br>Name nicht vegessen!";}

if($_POST['datum'] AND $_POST['betreff'] AND $_POST['nachricht'] AND $_POST['autor']) {

if(file_exists('nachricht.txt')) {$ausgabe="\n";} <<<ABSATZ MACHEN>>>>>
 $comment=fopen('nachricht.txt','a');
 $ausgabe.=$_POST['datum']."~".$_POST['betreff']."~".$_POST['nachricht']."~".$_POST['autor'];
 fputs($comment,$ausgabe);
 fclose($comment);

$_POST['datum']="";
$_POST['betreff']="";
$_POST['nachricht']="";
$_POST['autor']="";
;} {;}

echo "<a href='index.php'>Zurück zur Adminseite</a>";

Aber der Absatz wird nicht gemacht, warum?

Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------

--
Das Leben ist hart, aber wir sind härter
  1. Hallo Florian

    if(file_exists('nachricht.txt')) {$ausgabe="\n";} <<<ABSATZ MACHEN>>>>>

    Habs jetzt nicht genau angeschaut aber sieht nach klassischem
    Erkennungsfehler unter windows aus.

    probiers mal so:
    {$ausgabe="\r\n";}

    Bine

    1. Hallo an alle,

      Habs jetzt nicht genau angeschaut aber sieht nach klassischem
      Erkennungsfehler unter windows aus.

      probiers mal so:
      {$ausgabe="\r\n";}

      Danke es funktioniert. Aber ich habe da noch ein anderes Problem mit diser .txt. Wenn sie leer ist und ich einen neuen Datensatz erzeug dann wird erst ein leerer satz reingeschrieben und dann erst der neue. Das passiert nur das erste mal dann nicht mehr. Woran kann denn das liegen?

      Mit freundlichen Grüssen
      ------------------------
      Stahl Florian
      ------------------------

      --
      Das Leben ist hart, aber wir sind härter
      1. Hi Stahl!

        Wenn sie leer ist und ich einen neuen Datensatz erzeug dann wird erst ein leerer satz reingeschrieben und dann erst der neue. Das passiert nur das erste mal dann nicht mehr. Woran kann denn das liegen?

        Du gibst es explizit so an:
        $ausgabe.=$_POST['datum']."~".$_POST['betreff']."~".$_POST['nachricht']."~".$_POST['autor'];

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hallo an alle,

          Wenn sie leer ist und ich einen neuen Datensatz erzeug dann wird erst ein leerer satz reingeschrieben und dann erst der neue. Das passiert nur das erste mal dann nicht mehr. Woran kann denn das liegen?

          Du gibst es explizit so an:
          $ausgabe.=$_POST['datum']."~".$_POST['betreff']."~".$_POST['nachricht']."~".$_POST['autor'];

          So, hab ich es geschrieben ja, aber was ist da falsch daran? Warum beim ersten mal ein leerer Datensatz und ein voller?

          Mit freundlichen Grüssen
          ------------------------
          Stahl Florian
          ------------------------

          --
          Das Leben ist hart, aber wir sind härter
          1. Hi Stahl!

            So, hab ich es geschrieben ja, aber was ist da falsch daran? Warum beim ersten mal ein leerer Datensatz und ein voller?

            $ausgabe="\n";  
            /* ... */  
            $ausgabe.=$_POST['datum']."~".$_POST['betreff']."~".$_POST['nachricht']."~".$_POST['autor'];
            

            Ich nehme an, mit leerer Datensatz meinst du die leere Zeile am Anfang der Datei.
            Du fügst immer am Anfang eines Datensatzes einen Zeilenumbruch ein. Wieso nicht am Ende?

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hallo an alle,

              Ich nehme an, mit leerer Datensatz meinst du die leere Zeile am Anfang der Datei.
              Du fügst immer am Anfang eines Datensatzes einen Zeilenumbruch ein. Wieso nicht am Ende?

              Aber wo müsste ich dass denn dann einfügen?

              MfG H☼psel

              Mit freundlichen Grüssen
              ------------------------
              Stahl Florian
              ------------------------

              --
              Das Leben ist hart, aber wir sind härter
              1. Hi Stahl!

                Du fügst immer am Anfang eines Datensatzes einen Zeilenumbruch ein. Wieso nicht am Ende?
                Aber wo müsste ich dass denn dann einfügen?

                Am Ende. -.-
                <loriot>Spreche ich denn so undeutlich?</loriot>

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                1. Hallo an alle,

                  Du fügst immer am Anfang eines Datensatzes einen Zeilenumbruch ein. Wieso nicht am Ende?
                  Aber wo müsste ich dass denn dann einfügen?
                  Am Ende. -.-
                  <loriot>Spreche ich denn so undeutlich?</loriot>

                  Das hab ich schon verstanden, bin mir aber nicht schlüssig wo im Quelltext

                  Mit freundlichen Grüssen
                  ------------------------
                  Stahl Florian
                  ------------------------

                  --
                  Das Leben ist hart, aber wir sind härter
          2. Hallo Florian

            Du gibst es explizit so an:
            [code lang=php]$ausgabe.=

            So, hab ich es geschrieben ja, aber was ist da falsch daran? Warum beim ersten mal ein leerer Datensatz und ein voller?

            Du bist anscheinend Anfänger in Sachen PHP, nicht böse gemeint;-)
            Vor einigen Jahren war ich das auch und als ich was lernen wollte
            habe ich Foren wie dieses hier besucht.

            Das Problem ist allerdings, dass die Antworten in der Regel
            Grundkenntnisse voraussetzen (Anmerkung: Deshalb sind auch
            viele Anfängerbücher schlecht).

            Das liegt daran, wenn man sich selbst einigermassen auskennt,
            kann man sich nicht mehr erinnern wie ein Anfänger denkt.

            Ich hatte wochenlang damit zu tun warum einfache oder doppelte
            Anführungszeichen(damals gabs auch nicht so viele infos zu php)

            Wie auch immer, ich habe nachdem ich ein paar schlechte Bücher gekauft hatte und sinnlose Zeit damit verschwendet hatte,
            endlich ein Buch gefunden, dass mir innerhalb eines Tages
            alles Grundwissen vermitteln konnte.

            Was ich damit sagen will: Vergiss erst mal Internet und Foren,
            hole ein gutes Buch und arbeite die Übungen durch, dann
            lernst du wirklich schneller.

            Zu deiner Frage:
            $ausgabe ist jetzt bei dir ein Zeilenumbruch. (\r\n)
            Du schreibst in eine Datei $ausgabe .= $xy_text
            Das bedeutet am Anfang dieser Zeile setzt du immer wieder
            einen Zeilenumbruch, das solltest du aber am ande tun.

            Also nicht: $ausgabe. = $xy_text
            sondern     $ausgabe  = $xy_text.$ausgabe;

            Wobei der Ansatz des scriptes schon nicht besonders schön ist.
            Will jetzt aber nicht ins Detail gehen, das merkst
            du schon mit der Zeit. Denke du hast das Script nicht selbst geschrieben, aber es gibt bessere auch zum verstehen.

            Vielleicht hilfreich:
            http://www.webmaster-resource.de/tutorials/php/php-tutorial-13.php

            Bine

            1. Hallo an alle,

              Du bist anscheinend Anfänger in Sachen PHP, nicht böse gemeint;-)
              Vor einigen Jahren war ich das auch und als ich was lernen wollte
              habe ich Foren wie dieses hier besucht.

              Hab zumindest mal ein "Anfängerbuch" mir gekauft und auch durchgemacht. Jetzt muss ich halt üben.

              Wie auch immer, ich habe nachdem ich ein paar schlechte Bücher gekauft hatte und sinnlose Zeit damit verschwendet hatte,
              endlich ein Buch gefunden, dass mir innerhalb eines Tages
              alles Grundwissen vermitteln konnte.

              Kannst du mir verraten wie das buch heist?

              Zu deiner Frage:
              $ausgabe ist jetzt bei dir ein Zeilenumbruch. (\r\n)
              Du schreibst in eine Datei $ausgabe .= $xy_text
              Das bedeutet am Anfang dieser Zeile setzt du immer wieder
              einen Zeilenumbruch, das solltest du aber am ande tun.

              Also nicht: $ausgabe. = $xy_text
              sondern     $ausgabe  = $xy_text.$ausgabe;

              Wobei der Ansatz des scriptes schon nicht besonders schön ist.
              Will jetzt aber nicht ins Detail gehen, das merkst
              du schon mit der Zeit. Denke du hast das Script nicht selbst geschrieben, aber es gibt bessere auch zum verstehen.

              Also geschrieben hab ich ihn schon selber mit meinem Wissen aus diesem Buch.

              Vielleicht hilfreich:
              http://www.webmaster-resource.de/tutorials/php/php-tutorial-13.php

              Danke, werde ich mir mal anschauen

              Bine

              Mit freundlichen Grüssen
              ------------------------
              Stahl Florian
              ------------------------

              --
              Das Leben ist hart, aber wir sind härter
              1. Kannst du mir verraten wie das buch heist?

                Aus dem Stehgreif nicht, ist lange her ;-)
                Weiss nur noch war ein weisses Cover.

                Aber morgen schau ich mal auf dem Dachboden, da liegt es
                und dann sag ich dir den Titel.
                Aber das richtige Buch ist wirklich wichtig.
                Hatte davor ca. 12-15 gekauft, die allesamt zwar Titel
                wie "für Anfänger" "leicht erklärt"
                 usw. hatten , aber nichts vermitteln konnten.

                Mittlerweile schreibe ich die komplexesten
                PHP + Mysql Anwendungen obwohl ich vorher nicht
                mal einen Schimmer hatte was ein echo''; macht. ;-)

                Bine

                1. Hallo an alle, »»

                  Kannst du mir verraten wie das buch heist?

                  Aus dem Stehgreif nicht, ist lange her ;-)
                  Weiss nur noch war ein weisses Cover.

                  Aber morgen schau ich mal auf dem Dachboden, da liegt es
                  und dann sag ich dir den Titel.
                  Aber das richtige Buch ist wirklich wichtig.
                  Hatte davor ca. 12-15 gekauft, die allesamt zwar Titel
                  wie "für Anfänger" "leicht erklärt"
                  usw. hatten , aber nichts vermitteln konnten.

                  Aso, habe im Moment ein Buch: PHP5&Mysql4 - Der leichte Einstieg

                  Mittlerweile schreibe ich die komplexesten
                  PHP + Mysql Anwendungen obwohl ich vorher nicht
                  mal einen Schimmer hatte was ein echo''; macht. ;-)

                  Bine

                  Mit freundlichen Grüssen
                  ------------------------
                  Stahl Florian
                  ------------------------

                  --
                  Das Leben ist hart, aber wir sind härter
                  1. Hallo Stahl Florian,

                    Aso, habe im Moment ein Buch: PHP5&Mysql4 - Der leichte Einstieg

                    Erstens würde mich mal interessieren (und das schon seit langem), wie alt du bist. Zweitens will ich wissen, wie lange genau du jetzt schon PHP lernst.

                    An deinen zahlreichen Postings von dir in letzter Zeit sieht man, dass du manchmal den zweiten Schritt vor dem ersten machen willst. Du probierst dich schon an sehr verschachtelten SQL-Abfragen (nur als Beispiel), wobei du irgendwie noch nicht einmal mit den Basics vertraut bist.

                    Ich lerne jetzt seit 3 oder 4 Monaten PHP, und habe mich in der ganzen Zeit nicht ein einziges Mal mit Datenbanken beschäftigt. Mir war es wichtiger, erstmal Kontrollstrukturen, Datentypen, Grundlegende PHP-Funktionen, Arrays usw. zu verinnerlichen. Ich habe ebenfalls solche schlechten Erfahrungen gemacht in anderen Sprachen, und als ich dann etwas mehr machen wollte, merkte ich, dass ich die Grundlagen nur überflogen und vollkommen unterschätzt habe. Man kann es zwar noch nachholen, doch das macht natürlich wenig Spaß und ist lästig. Deswegen habe ich mich entschieden und möchte es auch dir ans Herz legen, sich von Anfang an _gründlichst_ mit allen Fein- und Besonderheiten einer Sprache zu beschäftigen. Je höher du kommst, desto mehr wirst du dieses Wissen zu schätzen wissen.

                    Beste Grüße

                    1. Hallo an alle,

                      Aso, habe im Moment ein Buch: PHP5&Mysql4 - Der leichte Einstieg

                      Erstens würde mich mal interessieren (und das schon seit langem), wie alt du bist. Zweitens will ich wissen, wie lange genau du jetzt schon PHP lernst.

                      Bin 16 (noch). Und lern seit ca. 2 Monaten. Vorher zwar schon mal Anfänge gemacht, aber nicht wirklich drangeblieben.

                      An deinen zahlreichen Postings von dir in letzter Zeit sieht man, dass du manchmal den zweiten Schritt vor dem ersten machen willst. Du probierst dich schon an sehr verschachtelten SQL-Abfragen (nur als Beispiel), wobei du irgendwie noch nicht einmal mit den Basics vertraut bist.

                      Wie gesagt, ich hab das Buch und mache halt nach diesem System, also die Kapitel.

                      Ich lerne jetzt seit 3 oder 4 Monaten PHP, und habe mich in der ganzen Zeit nicht ein einziges Mal mit Datenbanken beschäftigt.

                      Das hab ich jetzt auch sein lassen, weil es mir zu viel wird.(im Moment)

                      Mir war es wichtiger, erstmal Kontrollstrukturen, Datentypen, Grundlegende PHP-Funktionen, Arrays usw. zu verinnerlichen. Ich habe ebenfalls solche schlechten Erfahrungen gemacht in anderen Sprachen, und als ich dann etwas mehr machen wollte, merkte ich, dass ich die Grundlagen nur überflogen und vollkommen unterschätzt habe. Man kann es zwar noch nachholen, doch das macht natürlich wenig Spaß und ist lästig. Deswegen habe ich mich entschieden und möchte es auch dir ans Herz legen, sich von Anfang an _gründlichst_ mit allen Fein- und Besonderheiten einer Sprache zu beschäftigen. Je höher du kommst, desto mehr wirst du dieses Wissen zu schätzen wissen.

                      Da hast du recht.

                      Mit freundlichen Grüssen
                      ------------------------
                      Stahl Florian
                      ------------------------

                      --
                      Das Leben ist hart, aber wir sind härter
                      1. Hallo Stahl Florian,

                        Erstens würde mich mal interessieren (und das schon seit langem), wie alt du bist. Zweitens will ich wissen, wie lange genau du jetzt schon PHP lernst.

                        Bin 16 (noch).

                        Ich auch. Auch ich habe mir ein Buch gekauft ("jetzt lerne ich php5 und mysql4.1", vielleicht meinst du das auch?!) und bin sehr unzufrieden damit. Bei manchen Funktionen merkt man, dass sie schlichtweg falsch beschrieben sind. Doch auch soetwas kann man ausbügeln, indem man gewissenhaft _jede_ Funktion und alle mit ihr verbundenen Varianten ausprobiert und ggf. im Handbuch nachschlägt.

                        Wie gesagt, ich hab das Buch und mache halt nach diesem System, also die Kapitel.

                        Halte dich nicht nur an dein Buch (erst recht nicht, wenn es schei** ist). Ergänze dein Gelerntes mit dem Wissen aus dem Handbuch und wenn du nicht mehr weiterkommst mit Wissen aus dem Forum. Versuche, bevor du drauflosprogrammierst, die Anforderungen an dein Script in Worte zu fassen, schreibe es am besten auch auf. Dann überlege, wie du einzelne Teile davon in Programmcode umsetzen kannst. Überlege vorher, wie du die Aufgaben aufteilst, wie deine Scripts miteinander oder mit der Außenwelt kommunizieren müssen. Erst wenn du eine klare Vorstellung davon hast, _wie_ du die Aufgabe lösen willst, fängst du an zu implementieren. Ein guter Ansatz dazu ist auch objektorientierte Programmierung.

                        Beste Grüße

                        1. Hallo an alle, .

                          Ich auch. Auch ich habe mir ein Buch gekauft ("jetzt lerne ich php5 und mysql4.1", vielleicht meinst du das auch?!) und bin sehr unzufrieden damit. Bei manchen Funktionen merkt man, dass sie schlichtweg falsch beschrieben sind. Doch auch soetwas kann man ausbügeln, indem man gewissenhaft _jede_ Funktion und alle mit ihr verbundenen Varianten ausprobiert und ggf. im Handbuch nachschlägt.

                          das ist mein Buch

                          apitel.

                          Halte dich nicht nur an dein Buch (erst recht nicht, wenn es schei** ist). Ergänze dein Gelerntes mit dem Wissen aus dem Handbuch und wenn du nicht mehr weiterkommst mit Wissen aus dem Forum. Versuche, bevor du drauflosprogrammierst, die Anforderungen an dein Script in Worte zu fassen, schreibe es am besten auch auf. Dann überlege, wie du einzelne Teile davon in Programmcode umsetzen kannst. Überlege vorher, wie du die Aufgaben aufteilst, wie deine Scripts miteinander oder mit der Außenwelt kommunizieren müssen. Erst wenn du eine klare Vorstellung davon hast, _wie_ du die Aufgabe lösen willst, fängst du an zu implementieren. Ein guter Ansatz dazu ist auch objektorientierte Programmierung.

                          Danke für die guten Tips. Bis jetzt habe ich es so gemacht:

                          • Überlegt aus was es bestehen soll
                          • Was ich für Funktionen brauche
                          • Welche Schritte ausgeführt werden müssen
                          • Schritt für Schritt halt geschrieben und ausprobiert

                          Mit freundlichen Grüssen
                          ------------------------
                          Stahl Florian
                          ------------------------

                          --
                          Das Leben ist hart, aber wir sind härter
                          1. Hallo Stahl Florian,

                            das ist mein Buch

                            Ah ja, das ist mein´s

                            • Überlegt aus was es bestehen soll

                            Gut.

                            • Was ich für Funktionen brauche

                            Ja, sicher hilfreich.

                            • Welche Schritte ausgeführt werden müssen

                            ´n bisschen spät vielleicht!?

                            • Schritt für Schritt halt geschrieben und ausprobiert

                            Mit geduldiger(er) Vorbereitung hättest du dir das mit dem Probieren sparen können.

                            Beste Grüße