1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zeilenumbruch aus textarea in csv verhindern

Dieses Thema im Forum "PHP" wurde erstellt von NeoMG84, 12. Februar 2018.

  1. NeoMG84

    NeoMG84 Grünschnabel

    Hallo zusammen,

    falls das doch der falsche Thread ist, bitte Thema einfach verschieben...

    Meine wenigkeit steht vor einem kleinen Problem.
    Mein PHP aus der Ausbildung ist schon ein paar Jahre her.

    Ich habe ein HTML Formular mit einer Textarea...
    In dieser Textarea sind Zeilenumbrüche möglich.
    Diese sollen aber nicht den weg in die CSV datei finden.
    Ich möchte wenn ich die CSV in Exel öffne, das die komplette Textarea sich in einem Feld befindet.

    Was habe ich Falsch gemacht?
    Ich sehe es einfach nicht.
    Ihr seht es bestimmt auf anhieb.

    Könnt Ihr mir weiterhelfen?

    Vielen Dank schonmal...

    Hier das Formular (auch eine PHP datei = formular.php) :
    HTML:
    1. <?php
    2.    fputs($dateiname, $daten);
    3. ?>
    4.  
    5. <form action="contact.php" method="post" class="comment-form" onsubmit="myFunction()">
    6.   <input name="artikel-nr" id="artikel-nr" type="text" placeholder="Artikel-Nr." >
    7.   <input name="fa-nr" id="fa-nr" type="text" placeholder="FA-Nr." >
    8.   <input name="ab-nr" id="ab-nr" type="text" placeholder="AB-Nr." >
    9.   <input name="datum" id="datum" type="text" placeholder="Datum TT.MM.JJJJ" >
    10.   <input name="produktbezeichnung" id="produktbezeichnung" type="text" placeholder="Produktbezeichnung">
    11.   <span>Produktionszeitraum von:</span>
    12.   <select name="vtag" id="vtag">
    13.    <option selected="selected">TT</option>
    14.    <option>01</option>
    15.    <option>02</option>
    16.   </select>
    17.   <select name="vmonat" id="vmonat">
    18.    <option selected="selected">MM</option>
    19.    <option>01</option>
    20.    <option>02</option>
    21.   </select>
    22.   <select name="vjahr" id="vjahr">
    23.    <option selected="selected">JJJJ</option>
    24.    <option>2018</option>
    25.    <option>2019</option>
    26.   </select>
    27.   <span>bis:</span>
    28.   <select name="btag" id="btag">
    29.    <option selected="selected">TT</option>
    30.    <option>01</option>
    31.    <option>02</option>
    32.   </select>
    33.   <select name="bmonat" id="bmonat">
    34.    <option selected="selected">MM</option>
    35.    <option>01</option>
    36.    <option>02</option>
    37.   </select>
    38.   <select name="bjahr" id="bjahr">
    39.    <option selected="selected">JJJJ</option>
    40.    <option>2018</option>
    41.    <option>2019</option>
    42.   </select>
    43.   <br />
    44.   <br />
    45.   <input name="personal-nr" id="personal-nr" type="text" placeholder="Deine Personal-Nr.">
    46.   <select name="abteilung" id="abteilung">
    47.    <option selected="selected">Meldende Abteilung</option>
    48.    <option>Abteilung 1</option>
    49.    <option>Abteilung 2</option>
    50.   </select>
    51.   <br>
    52.   <textarea name="mgrund" id="mgrund" placeholder="Mutmaßlicher Grund"></textarea>
    53.   <br />
    54.   <select name="mabteilung" id="mabteilung">
    55.    <option selected="selected">Mutmaßliche Abteilung</option>
    56.    <option>Abteilung 1</option>
    57.    <option>Abteilung 2</option>
    58.   </select>
    59.   <br>
    60.   <br />
    61.   <input name="makulatur" id="makulatur" type="text" placeholder="Entstandene Makulatur">
    62.   <select name="einheiten" id="einheiten">
    63.    <option selected="selected">Einheit Auswählen!</option>
    64.    <option>Meter</option>
    65.    <option>St&uuml;ck</option>
    66.   </select>
    67.   <br>
    68.   <input name="zeitverlust" id="zeitverlust" type="text" placeholder="Entstandene Zeitverlust">
    69.   <select name="zeinheiten" id="zeinheiten">
    70.    <option selected="selected">Zeiteinheit Auswählen!</option>
    71.    <option>Min</option>
    72.    <option>Stunden</option>
    73.   </select>
    74.   <br>
    75.   <textarea name="gegenmassnahmne" id="gegenmassnahmne" placeholder="Gegenmaßnahme"></textarea>
    76.   <span>Muster</span>
    77.   <input type="checkbox" name="rmuster" id="rmuster" />
    78.   <br />
    79.   <br />
    80.   <input type="submit" id="submit_contact" value="Fehlerbericht senden">
    81.   <script>
    82.    function myFunction() {
    83.    alert("Vielen Dank für deinen Fehlerbericht.");
    84.    }
    85.    </script>
    86. </form>
    Hier die verarbeitende PHP (contact.php):

    PHP:
    1. <?php
    2.  
    3.    $dz=fopen("fehler.csv","a");
    4.        if(!$dz)
    5.          {
    6.            echo "Datei konnte nicht zum Schreiben geöffnet werden.";
    7.            exit;
    8.          }
    9.          $save_code = $_POST['mgrund'];
    10.            $save_code = str_replace("\r", "", $save_code);
    11.            $save_code = str_replace("\n", "", $save_code);
    12.  
    13.    fputs($dz,$_POST['artikel-nr'].";"
    14.        .$_POST['fa-nr'].";"
    15.        .$_POST['ab-nr'].";"
    16.        .$_POST['datum'].";"
    17.        .$_POST['produktbezeichnung'].";"
    18.        .$_POST['vtag'].";"
    19.        .$_POST['vmonat'].";"
    20.        .$_POST['vjahr'].";"
    21.        .$_POST['btag'].";"
    22.        .$_POST['bmonat'].";"
    23.        .$_POST['bjahr'].";"
    24.        .$_POST['personal-nr'].";"
    25.        .$_POST['abteilung'].";"
    26.        .$_POST['mgrund'].";"
    27.        .$_POST['mabteilung'].";"
    28.        .$_POST['makulatur'].";"
    29.        .$_POST['einheiten'].";"
    30.        .$_POST['zeitverlust'].";"
    31.        .$_POST['einheiten'].";"
    32.        .$_POST['zeinheiten'].";"
    33.        .$_POST['gegenmassnahmne'].";"
    34.        .$_POST['rmuster'].";\n");
    35.  
    36.    fclose($dz);
    37.    echo "<p class='danke2'><i class='fa fa-thumbs-up'></i></p><br />
    38. <p class='danke'>Dieser Bericht ist nun in gespeichert.</p>"
    39.  
    40. ?>
     
  2. Kalito

    Kalito Erfahrenes Mitglied

    naja, bei fputs solltest du statt $_POST['mgrund'] schon $save_code nehmen.
     
  3. NeoMG84

    NeoMG84 Grünschnabel

    Ok, habs. Danke
     
    Zuletzt bearbeitet: 12. Februar 2018
  4. NeoMG84

    NeoMG84 Grünschnabel

    Habe es gelöst.
    Jetzt habe ich nur folgende Problem.

    Wenn ich folgendes in die textarea schreibe.

    Steht in der CSV.

    Hätte es aber gerne so mit Leerzeichen.

    Kann ich "str_replace" dafür nutzen und wenn ja, wie?
     
  5. Kalito

    Kalito Erfahrenes Mitglied

    In dem du das Leerzeichen einfügst :D Der zweite parameter ist ja der Begriff, der das Suchwort ersetzen soll.

    PHP:
    1. $save_code = str_replace("\r", " ", $save_code);
    2. $save_code = str_replace("\n", " ", $save_code);
     
  6. NeoMG84

    NeoMG84 Grünschnabel

    VIELEN DANK!!!
     
  7. NeoMG84

    NeoMG84 Grünschnabel

    Jetzt habe ich folgendes Problem... Ich habe eine fortlaufende Nummer vergessen... Nennen wir sie Berichts-Nr.
    Wie kriege ich es nun hin, dass beim schreiben der Daten in die .csv am Ende (letzte Spalte, letztes Feld in der Zeile) noch eine fortlaufende Nummer (Berichts-Nr.) mitgegeben wird. Bei jedem neuen Formular +1. Kann ich das nicht irgendwie mit einem $_POST mitgegeben?!
    Das hat Prioriät, wegen späteren Auswertungen. Die Berichts-Nr. wäre natürlich Klasse wenn sie mittels "echo" im Formular angezeigt werden könnte.
     
    Zuletzt bearbeitet: 12. Februar 2018
  8. EuroCent

    EuroCent KlappStuhl 2.0

    Dazu müsstest du vorweg erstmal wissen wie viele Berichte bereits existieren...

    Ohne dieses Wissen wirst du immer auf die selbige Zahl stoßen wenn Du beispielsweise $bericht = +1 machst.

    Der Wert muss ja irgendwie erstmal gespeichert werden und später beim nächsten Aufruf des Formulares um eins erhöht werden.

    Ob dafür unbedingt einen DB erfolgen muss, musst du selbst wissen.

    Man könnte aber auch mit TXT File arbeiten und diese mit der Id speichern...
     
  9. NeoMG84

    NeoMG84 Grünschnabel

    In der CSV stehen 3 Berichte.
    Wie kann, muss ich das dann nun umsetzen?
    Das Problem ist, ich benötige die Nummer in der CSV damit man anhand der Nummer den Bericht wieder findet.
    Meine Idee ist.
    Ich habe 3 Berichte.
    In der letzten Spalte eine 8-stellige Nummer.
    Diese kann ich ja zuvor Abfragen.
    Und +1 beim schreiben in die CSV.
    Die neue 8-stellige Nummer kann ich dann in der Bestigung ausgeben. " Ihr Bericht mit der Nummer XY wurde gespeichert".
    Diese kann ich dann anschließend per Mail versenden.
    Das ist mein Gedanke.
     
    Zuletzt bearbeitet: 13. Februar 2018
  10. NeoMG84

    NeoMG84 Grünschnabel

    Ok das habe ich auch.

    Nun muss ich die Inhalte des Formulars die ich in die CSV schreibe auch per Mail an eine feststehende Mailadress schicken.
    Wie bekomme ich das gelöst?
     
  11. Kalito

    Kalito Erfahrenes Mitglied

    es wäre schon schön, wenn du verschiedene Probleme auch in verschiedene Threats aufteilst. Wo scheitert es den beim Mailversand?

    stark vereinfacht:
    PHP:
    1. $empfaenger = "email@domain.de";
    2. $sender= "email@domain.de";
    3. $betreff = "Neuer Bericht";
    4. $body= "Hallo Claudia!
    5.        $user war gerade auf deinen PHP-Seiten und
    6.        wollte dir sagen, dass sie ihm/ihr sehr gut
    7.        gefallen.
    8.        Wenn du mit ihm/ihr Kontakt aufnehmen
    9.        m&ouml;chtest, benutze bitte die Adresse $usermail.";
    10. mail($empfaenger, $betreff, $body, "From: $sender");
     
Die Seite wird geladen...