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

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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]
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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>
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
Gib mal bei deinem Formular das enctype="text/plain" weg
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
ist nun geändert, jedoch erscheinen in der TXT immer noch keine Daten. :/
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
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.
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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.
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
wie gesagt, input type="submit" obwohls daran nicht scheitern sollte...
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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.
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
Das ist echt seltsam. Vielleicht weiß einer der Mitleser was.
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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?
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
dazu brauchst du wohl JS
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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?
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
HTML kannst du, sagtest du.
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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?
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
natürlich weißt du auf welcher datei er sich gerade befindet!? und ja, es ist die ausgabe.php
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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?
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
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 ;)
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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>
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
Natürlich du hast auch ' ' statt " " geschrieben ;) beim

PHP:
$dataArray[] = "$key: $value";
 

Lino

Grahams Jubiläumsapfel
Registriert
25.08.08
Beiträge
103
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