• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

[PHP] Beginner: Mail Form mit PHP senden plus Datensicherung

Müsste jetzt stimmen, es wird aber immer noch nichts in die datei geschrieben :/

[PHP
<html>
<body>

<?php

if (isset($_POST['send'])) {
$dataString = implode(',', $_POST).'\n';

mail('[email protected]', 'Betreff', $dataString);

file_put_contents('./data.txt', $dataString, FILE_APPEND);
}

echo '<p>Abteilung: ' . $_POST['Abteilung'] . 'Verantwortlicher: ' . $_POST['Verantwortlicher'] . '</p>';

echo '<p>Projekt: ' . $_POST['Projekt'] . 'Kostenstelle: ' . $_POST['Kostenstelle'] . 'IB Nr.: ' . $_POST['IB Nr.'] . '</p>';

echo '<p>Aufgabe: ' . $_POST['Aufgabe'] . 'Platten Nr.: ' . $_POST['Platten Nr.'] . 'Plattentyp: ' . $_POST['Plattentyp'] . '</p>';

echo '<p>Liefermoment: ' . $_POST['Liefermoment'] . 'Dringlichkeit: ' . $_POST['Dringlichkeit'] . 'Lieferdatum: ' . $_POST['Lieferdatum'] . '</p>';

?>
</body>
</html>
[/PHP]
 
Müsste jetzt stimmen, es wird aber immer noch nichts reingeschrieben :/

PHP:
<html>
<body>

<?php

    if (isset($_POST['send'])) {
       $dataString = implode(',', $_POST).'\n';

       mail('[email protected]', 'Betreff', $dataString);

       file_put_contents('./data.txt', $dataString, FILE_APPEND);
    }

    echo '<p>Abteilung: ' . $_POST['Abteilung'] . 'Verantwortlicher: ' . $_POST['Verantwortlicher'] . '</p>';

    echo '<p>Projekt: ' . $_POST['Projekt'] . 'Kostenstelle: ' . $_POST['Kostenstelle'] . 'IB Nr.: ' . $_POST['IB Nr.'] . '</p>';

    echo '<p>Aufgabe: ' . $_POST['Aufgabe'] . 'Platten Nr.: ' . $_POST['Platten Nr.'] . 'Plattentyp: ' . $_POST['Plattentyp'] . '</p>';

    echo '<p>Liefermoment: ' . $_POST['Liefermoment'] . 'Dringlichkeit: ' . $_POST['Dringlichkeit'] . 'Lieferdatum: ' . $_POST['Lieferdatum'] . '</p>';

?>
</body>
</html>
 
Gib mal bei deinem Formular das enctype="text/plain" weg
 
ist nun geändert, jedoch erscheinen in der TXT immer noch keine Daten. :/
 
Seltsam. Bei mir schon. Fehler gibt PHP keinen aus?

Dein Code sieht jetzt so aus:
PHP:
<?php

    if (isset($_POST['send'])) {
       $dataString = implode(',', $_POST).'\n';

       mail('[email protected]', 'Betreff', $dataString);

       file_put_contents('./data.txt', $dataString, FILE_APPEND);
    }

    echo '<p>Abteilung: ' . $_POST['Abteilung'] . 'Verantwortlicher: ' . $_POST['Verantwortlicher'] . '</p>';

    echo '<p>Projekt: ' . $_POST['Projekt'] . 'Kostenstelle: ' . $_POST['Kostenstelle'] . 'IB Nr.: ' . $_POST['IB Nr.'] . '</p>';

    echo '<p>Aufgabe: ' . $_POST['Aufgabe'] . 'Platten Nr.: ' . $_POST['Platten Nr.'] . 'Plattentyp: ' . $_POST['Plattentyp'] . '</p>';

    echo '<p>Liefermoment: ' . $_POST['Liefermoment'] . 'Dringlichkeit: ' . $_POST['Dringlichkeit'] . 'Lieferdatum: ' . $_POST['Lieferdatum'] . '</p>';

?>

die data.txt befindet sich im gleichen Ordner wie ausgabe.php (und existiert bereits!?)?
Das Formular sieht so aus: <form action="test.php" method="post">?
Dein Absenden-Button sollte übrigens so aussehen: <input type="submit" name="send" value="Abschicken">
... du hattest submit nicht unter " " stehen.
 
Die data.txt und die ausgabe.php liegen im gleichen Ordner.

Das Formular sieht so aus (test.html):
<form action="ausgabe.php" method="post">
<input type=submit name="send" value="Abschicken">

Und der PHP in der ausgabe.php sieht genau so aus wie du aufgezeigt hast.
 
wie gesagt, input type="submit" obwohls daran nicht scheitern sollte...
 
ok sorry, habe ich voll übersehen.

Also irgendwas passiert mit der data.txt die grösse hat sich von 180 B auf 263 B geändert, doch wenn ich sie öffne wurde nichts reingeschrieben.
 
Das ist echt seltsam. Vielleicht weiß einer der Mitleser was.
 
ja das wäre cool :/

ist es noch möglich zu ändern dass wenn man auf "Abschicken" klickt, sich das Formular leert
und ne nachricht eingeblendet wird für 3 sec "Übermittlung erfolgreich". Danach steht man wieder vor dem leeren formular?
 
dazu brauchst du wohl JS
 
oha, ok, ist es möglich nach der eingabe wenn man auf die ausgabe.php einen button zuhaben der einen wieder zum leeren formular zurück bringt?
 
HTML kannst du, sagtest du.
 
ja, die Frage ist nur, wo füge ich den Button ein, da ich ja nicht weiss auf welcher datei er sich jetzt gerade befindet?!
meiner "meinung" nach füge ich ihn in die ausgabe.php ein oder?
 
natürlich weißt du auf welcher datei er sich gerade befindet!? und ja, es ist die ausgabe.php
 
Hallo @vcr80 ich habe das mit den Daten endlich hingekriegt,
es gibt nur noch ein kleines Problem. er speichert alle Daten die ich eingebe ausser das Label der Texteingaben?
kann ich das irgendwie über den php code regeln?
 
ja, kannst du
PHP:
foreach ($_POST as $key => $value){
    $dataArray[] = "$key: $value";
}

$dataString = implode(",", $dataArray)."\n";

Wieder nicht auf Fehler getestet.

Den Code nimmst du und ersetzt damit

PHP:
$dataString = implode(',', $_POST).'\n';

Sollte klappen.

Übrigens: Wenn du vor hast, PHP zu lernen, dann kopiere den Code nicht nur sondern, schau dir auch an, was er macht ;)
 
Danke für deinen Support @vcr80

Jetzt speichert er die Daten nicht mehr richtig ab also eigentlich schreibt er in die TXT nur noch wiederholt
$key: $value



PHP:
<html>
<body>

<?php

    if (isset($_POST['send'])) {
       foreach ($_POST as $key => $value){
           $dataArray[] = '$key: $value';
       }
       
       $dataString = implode(',', $dataArray).'\n';

       mail('[email protected]', 'Betreff', $dataString);

       file_put_contents('./data.txt', $dataString, FILE_APPEND);
    }

    echo '<p>Abteilung: ' . $_POST['Abteilung'] . 'Verantwortlicher: ' . $_POST['Verantwortlicher'] . '</p>';

    echo '<p>Projekt: ' . $_POST['Projekt'] . 'Kostenstelle: ' . $_POST['Kostenstelle'] . 'IB-Nr: ' . $_POST['IB-Nr'] . '</p>';

    echo '<p>Aufgabe: ' . $_POST['Aufgabe'] . 'Platten Nr.: ' . $_POST['Platten Nr.'] . 'Plattentyp: ' . $_POST['Plattentyp'] . '</p>';

    echo '<p>Liefermoment: ' . $_POST['Liefermoment'] . 'Dringlichkeit: ' . $_POST['Dringlichkeit'] . 'Lieferdatum: ' . $_POST['Lieferdatum'] . '</p>';

?>
</body>
</html>
 
Natürlich du hast auch ' ' statt " " geschrieben ;) beim

PHP:
$dataArray[] = "$key: $value";
 
haha oh man. ich begreif es einfach nicht :D

aber es funktioniert so super.
Vielen dank für deinen Support @vcr80 bin wirklich dankbar dafür.

Gruss
Lino