Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Formulardaten nach Auswertung per Mail verschicken [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Formulardaten nach Auswertung per Mail verschicken


 
foxy_hdk
24-06-2006, 22:55 
 
hallo werte community,


Ich habe ein html-formular erstellt und
übergebe die Daten per method="post"
an eine php-datei zur Auswertung,
das heisst in der php-datei verarbeite ich alle
im forumlar eingegeben daten und gebe sie auf den Bildschirm
aus, der kunde kann sich dann alles anschauen
nochmal zurückgehen und ggf korrigieren,

wenn dann alles stimmt sollen die
daten per klick auf einen button
als email versendet werden

und genau da liegt mein problem, ich habe keine idee wie
ich direkt aus der auswertungsdatei die sachen verschicken kann

der mail-befehlt sie ja ca. so aus

mail("$mail","$betreff","$nachricht","FROM: $absender");

aber wie ich den schritt vom klick auf den button zu der ausführung des
mailbefehls hinbekomme ist mir leider schleierhaft :dontknow:



vielen dank für eure Mühen

foxy

 
Abraxax
24-06-2006, 23:08 
 
wo ist dein problem? du nimmst das gleiche script, prüfst damit die daten halt noch einmal, und baust dir aus den daten einen string für den body der mail zusammen.

also nicht ausgeben, sondern einen string erstellen. diesen kannst du dann problemlos mit mail() weiter verarbeiten.

 
foxy_hdk
24-06-2006, 23:25 
 
hmh die daten sind doch schon verarbeitet

um die nochmal aufzurufen muss ich das doch aus dem formular
machen ?


ok dann vielleicht anders,

ich habe alle daten die ich per email versenden will als
string in der .php datei vorliegen

und möchte diese nun per klick auf einen button aus dieser
datei heraus verschicken


<form name='form' action='xxx' method='post'>


nun müsste ich doch irgendwie bei action den mail-befehl reinbasteln ?

 
foxy_hdk
25-06-2006, 11:59 
 
kann mir niemand helfen ?

ich habe jetzt schon versucht die daten als datei
abzuspeichern, und dann zu verschicken

aber da ich den namen der datei als variable bestimme
und diese ja bei erneutem aufruf der auswertungsdatei ebenso
weg ist, klappt das auch nicht



kann mir niemand nen kleinen codeschnipsel basteln ?

 
penizillin
25-06-2006, 15:12 
 
google ist dein freund
http://www.google.de/search?hl=de&q=php+mail+formular&meta=

 
foxy_hdk
25-06-2006, 15:29 
 
wenn ich die formulardaten direkt aus dem formular per email verschicken will funktioniert das


aber ich lass die formulardaten auf der nächsten Seite auswerten und anzeigen, danach kann man nochmal zurückgehen
oder die daten verbindlich per email abschicken


ich weiss aber leider nicht wie ich diese daten (ein string in einer variablen gespeichert) auf der 2. seite versenden kann :(

 
WeisserWolf
25-06-2006, 15:31 
 
<html>
<head></head>
<body>
<center>
<?
if(empty($submit)) {

echo "<form name=\"anmeldung\" method=\"post\" action=\"anmeldung.php\">
<br><br><p><strong><em>Bitte geben Sie Ihre g&uuml;ltige E-Mail-Adresse an, da Sie
ein Passwort von uns zugeschickt bekommen. Dieses Passwort k&ouml;nnen Sie
gleich nach Erhalt &auml;ndern.</em></strong></p>
<p>&nbsp;</p>
<table width=\"345\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"140\">Anrede</td>
<td width=\"204\"><div align=\"center\">
<select name=\"anrede\">
<option selected></option>
<option>Herr</option>
<option>Frau</option>
</select>
</div></td>
</tr>
<tr>
<td>Vorname</td>
<td><div align=\"center\">
<input type=\"text\" name=\"vorname\" size=\"28\">
</div></td>
</tr>
<tr>
<td>Nachname</td>
<td><div align=\"center\">
<input type=\"text\" name=\"name\" size=\"28\">
</div></td>
</tr>
<tr>
<td>Stra&szlig;e, Hausnummer</td>
<td><div align=\"center\">
<input type=\"text\" name=\"straße\"><input type=\"text\" name=\"hausnummer\" size=\"4\">
</div></td>
</tr>
<tr>
<td>Postleitzahl, Wohnort</td>
<td><div align=\"center\">
<input type=\"text\" name=\"postleitzahl\" size=\"4\"><input type=\"text\" name=\"wohnort\" size=\"20\">
</div></td>
</tr>
<tr>
<td>Vorwahl, Telefon</td>
<td><div align=\"center\">
<input type=\"text\" name=\"vorwahl\" size=\"4\"><input type=\"text\" name=\"telefon\">
</div></td>
</tr>
<tr>
<td>E-Mail</td>
<td><div align=\"center\">
<input type=\"text\" name=\"email\" size=\"28\">
</div></td>
</tr>
</table>
<p><br>
<input type=\"submit\" name=\"submit\" value=\"Anmelden --->\">
<br>
</form>";



}
else
{
foreach($_POST as $key => $value){
if (empty($value))
{
echo"<p>Bitte füllen sie alle Felder aus</p>
<form>
<input type=\"button\" value=\"&lt;-- Zurück zum Formular\"
onclick=\"Javascript:history.back()\">
</form>";
echo "<noscript>Bitte per Back-Button zurücknavigieren!</noscript>";
exit;
}

if(!strstr($_POST['email'],"@") || !strstr($_POST['email'],"."))
{
echo "Ihre Eingegebene E-Mail Adresse ist ungültig!<br><br><br>
<form>
<input type=\"button\" value=\"&lt;-- Zurück zum Formular\"
onclick=\"Javascript:history.back()\">
</form>";
echo "<noscript>Bitte per Back-Button zurücknavigieren!</noscript>";
exit;
}


echo "Bitte überprüfen sie ihre Daten noch einmal!<br><br><br>";


echo addslashes($_POST['anrede'])."<br>";
echo addslashes($_POST['vorname'])."<br>";
echo addslashes($_POST['name'])."<br>";
echo addslashes($_POST['straße'])."<br>";
echo addslashes($_POST['hausnummer'])."<br>";
echo addslashes($_POST['postleitzahl'])."<br>";
echo addslashes($_POST['wohnort'])."<br>";
echo addslashes($_POST['vorwahl'])." ";
echo addslashes($_POST['telefon'])."<br>";
echo addslashes($_POST['email'])."<br><br><br>";
echo "<br><br>";
echo "Sind diese Daten korrekt?";
echo "<form action=\"anmeldung2.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"anrede\" value=\"".addslashes($_POST['anrede'])."\">";
echo "<input type=\"hidden\" name=\"vorname\" value=\"".addslashes($_POST['vorname'])."\">";
echo "<input type=\"hidden\" name=\"name\" value=\"".addslashes($_POST['name'])."\">";
echo "<input type=\"hidden\" name=\"straße\" value=\"".addslashes($_POST['straße'])."\">";
echo "<input type=\"hidden\" name=\"hausnummer\" value=\"".addslashes($_POST['hausnummer'])."\">";
echo "<input type=\"hidden\" name=\"postleitzahl\" value=\"".addslashes($_POST['postleitzahl'])."\">";
echo "<input type=\"hidden\" name=\"wohnort\" value=\"".addslashes($_POST['wohnort'])."\">";
echo "<input type=\"hidden\" name=\"vorwahl\" value=\"".addslashes($_POST['vorwahl'])."\">";
echo "<input type=\"hidden\" name=\"telefon\" value=\"".addslashes($_POST['telefon'])."\">";
echo "<input type=\"hidden\" name=\"email\" value=\"".addslashes($_POST['email'])."\">";
echo "<input type=\"button\" value=\"&lt;-- Nein, bitte korrigieren\" ";
echo "onClick=\"javascript:history.back()\">";
echo "<noscript>Bitte per Back-Button zurücknavigieren!</noscript>";
echo "<input type=\"submit\" name=\"submit\" value=\"Alles klar --&gt;\"></form>";
}
?>
</center>
</body>
</html>


Anmeldung2



$sender = "Hans Wurst";
$sendermail = "anmeldung@klatschbumpeng.de";
$betreff = "ihre ANmeldebestätigung";
$text = "Hallo " . addslashes($_POST["anrede"]) . " " . addslashes($_POST["name"]) ." !"."\r\n\r\n
Dieses ist eine vom System generierte Email. Bitte antworten sie auf diese Mail nicht!\r\n";
mail($email, $betreff, $text,
"From: $sender <$sendermail>");



Ob du die ganzen eingegebenen User Daten in eine Datenbank schreibst oder sonst was mit anstellst ist natürlich dir überlassen ;)

Gruß Wolf

 
foxy_hdk
25-06-2006, 15:53 
 
hmh irgendwie hilft mir das nicht

so wie ich das sehe hast du eine datei
nachdem man das formular eingegeben und bestätigt hat
erscheint ein 2. formular mit den eingegeben daten aus dem 1. Formular
und diese kann man dann per email verschicken

danke das du dir soviel arbeit gemacht hast

:(

aber ich sehe nicht wie ich damit einen string verschicken kann
:(

 
WeisserWolf
25-06-2006, 16:00 
 
Öhmm... denn verstehe ich grad deine Frage nicht so ganz *g*

Also du kannst per hidden etwas an ein php Formular übermitteln.
so

echo "<input type=\"hidden\" size=\"2\" maxlength=\"1\" value=\"$vorname\" name=\"Vorname\">";


In deinem Auswerungs script kannste nun mit
$_POST['Vorname'] drauf zugreifen

prüfen ob die Felder nicht leer sind usw. Wie bei dem Beitrag oben
Ich habe keine Datei benutzt, Das sind alles Usereingaben
Wenn deine Überprüfungen Stimmen kannste denn Mist denn mailen

$sender = "Wurst";
$sendermail = "anmeldung@b.de";
$betreff = "Ihre Userdaten";
$text = "Hallo " . $_POST["anrede"]. " " . $_POST["name"] ." Bla BLa".$POST["adresse"]."Und so weiter"."\r\n\r\n";
mail($email, $betreff, $text,
"From: $sender <$sendermail>");

 
tcpip
25-06-2006, 16:15 
 
Darf ich es auch versuchen, zu erklären?

Die Bestätigungsseite, muss auch ein Formular sein. Nur sind darin die angezeigten Daten nicht mehr veränderbar. Dafür gibt es das Attribut readonly zu <input> und zu <textarea>.
Die Daten werden mit dem Attribut VALUE: <input name=... readonly value="$feld"> ins Formular geschrieben, nicht mit echo. Klickt user submit, kommen die Daten aus den readonly Feldern wieder zurück ans action-Mail-Script.

Eine zweite Variante ist, die Daten als hidden Felder ins Formular zu schreiben <input type=hidden value="$wert"> und die Daten für den User mit echo anzuzeigen. Klickt user submit, kommen die Daten aus den hidden Feldern wieder zurück ins action-Mail-Script.

Die Daten gehen nicht direkt vom Auswerteskript ins Mailskript, sondern via den Browser und die Bestätigungsseite. So ist es üblich.

 
foxy_hdk
25-06-2006, 16:54 
 
hmh so recht bin ich noch nicht durch :(

ich habe meine daten aus dem formular
in eine php-datei geschickt zur auswertung


die absender email ist in $mail gespeichert
und alle weiteren formulardaten in $text_absender

ich überprüfe in der auswertungsdatei halt auf fehleingaben
und stelle alle eingaben für den kunden nochmal dar



nun habe ich in der auswertungsdatei folgendes formular erstellt



echo '
<form method="post" action="versand.php">
<input name=text1 type=hidden value="$text_absender">
<input name=email type=hidden value="$mail">
<br>
<input type="submit" name="submit" value="OK">
</form>
';





und die versand.php welche dann alles versenden soll sieht so aus


<?
$sender = "Absender";
$sendermail = "test@test";
$betreff = "Ihre Userdaten";

$text = $_POST['text1'];
$mail = $_POST['email'];
mail($mail, $betreff, $text,"From: $sender <$sendermail>");


?>



leider passiert nix :dontknow:

 
WeisserWolf
25-06-2006, 17:15 
 
schau doch mal mitm Echo ob alles korreckt übertragen wurde.

Ausserdem fehlt hier was

$sendermail = "test@test";

nämliche das .de zb.

Gruß Wolf

 
foxy_hdk
25-06-2006, 17:27 
 
ich habe das mit echo überprüft

er liest in das formular nicht den inhalt der variablen ein sondern
er liest den namen der variablen ein


also in der input box steht dann : $text_absender
drin anstatt der inhalt der variablen

 
penizillin
25-06-2006, 17:33 
 
das liegt daran, dass man die variablen nicht in irgendwelche anführungsstriche/hochkommata/etc. einschließen soll.

 
foxy_hdk
25-06-2006, 17:39 
 
das habe ich auch schon alles ausprobiert :mad:



echo ' <br /><br />
<form method="post" action=versand.php>
<input type="submit" name=submit value="Buchung verbindlich absenden">
<input name=text1 type=hidden value=$text_absender>
<input name=email type=hidden value=$mail>
</form>
';

 
penizillin
25-06-2006, 17:45 
 
die rede war von der syntax von php.

nicht von html.

 
WeisserWolf
25-06-2006, 18:03 
 
z.b so:

<br><br>
<form method="post" action=versand.php>
<input type="submit" name=submit value="Buchung verbindlich absenden">
<input name=text1 type=hidden value="<? echo $text_absender; ?>">
<input name=email type=hidden value="<?echo $mail;?>">
</form>

Sonst kannst du auch alles Escapen:
so finde ich es persönlich schöner

echo "<br><br>
<form method=\"post\" action=\"versand.php\">
<input type=\"submit\" name=\"submit\" value=\"Buchung verbindlich absenden\">
<input name=\"text1\" type=\"hidden\" value=\"$text_absender\">
<input name=\"email\" type=\"hidden\" value=\"$mail\">
</form>";

Gruß

 
tcpip
25-06-2006, 18:26 
 
hilft Dir wirklich niemand?

Du hast nur einen Fehler mit den ' und den " . Nur im "..." werden $variabeln ersetzt. Alle html "..." müssen dann \"...\" sein.
Dann habe ich noch eine Abbrechen Taste hinzugefügt, so wie man es machen kann
(separates <form> auf der gleichen Seite)

Falls es Tippfehler hat, hoffe ich Du wirst damit fertig..

Ich versuche es mal mit meinen Worten:

echo "
<form method=\\"post\\" action=\\"versand.php\\">
<input name=text1 type=hidden value=\\"$text_absender\\">
<input name=email type=hidden value=\\"$mail\\">

<h3>Lesbare Bestätigung</h3>
Deine Buchung ist<br />
Absender: $text_absender<br/ >
emailadresse:$mail<br/ >
weitere info $undsowseiter....<br/ >

<br>
<input type=submit name=\\"submit\\" value=\\"OK\\">
</form>
";

echo "<form action=index.php method=post>
<input type=submit name=\\"submit\\" value=\\"Abbrechen\\">
</form>
";




edit: obiges ist syntaxfehlerfrei.

 
foxy_hdk
25-06-2006, 18:27 
 
vielen dank für eure Geduld


so funktioniert es jetzt


echo ' <br /><br />
<form method="post" action="versand.php">
<input type="submit" name=submit value="Buchung verbindlich absenden">
<input name=text1 type=hidden value="'. $text_absender .'">
<input name=email type=hidden value="'. $mail .'">
</form>';

 
foxy_hdk
25-06-2006, 18:32 
 
oh danke tcpip


ich hatte gepostet und dazwischen hattest du gepostet ;)

dein beispiel funktioniert sehr gut

das mit dem abbrechen werde ich einbauen

die lesbare bestätigung hatte ich ja schon vorher ausgegeben
also der formulartext wird ja schon einmal komplett angezeigt

ich freu mich
nun ist der sonntag doch noch gerettet ;)


nochmals vielen dank

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:37 Uhr.