| mail() |
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
Hallo,
Ich hätte da noch ne Frage zu nem php mailer:
Also, bisher hatte ich meine Formulare immer so verschickt, das ich erst eine html seite mit formular gemacht habe und dann eine send_mail.php, die dann die nachricht verschickt hat. jetzt möchte ich das ganze nur in eine php datei machen also, z.B. mail.php inder das formular und dann noch das mail script ist. im <form action="<? $PHP_SELF ?>" method="post"> aber wi kann ich sicher gehen, das die mail nicht verschickt wir, bevor auf auf "senden" gegangen bin ??
Hoffe auf schnelle meldungen...
AXo
|
|  Profil
Editieren
Zitieren
|
Agent
Quasselstrippe
Beiträge: 312
|
Hey,
ganz einfach:
in dem du per "if" guckst ob das form abgeschickt wurde:
(am besten per hidden field):
<form action="<?php echo "$PHP_SELF" ?>" method="post">
<input type="hidden" name="gesendet" value="yes">
usw
und am besten ganz oben in die datei:
if($gesendet == "yes")
{
echo "Danke fuers absenden bla bla";
}
Fröhliche Weihnachten an alle !!!!!!!1
c u all
Agent
---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?
|
|  Profil
Website
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
sau cool, danke...
|
|  Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
also, soll ich dann statt dem echo blabla, mail(bla,bla,bla) usw. ???
oder wie ?
|
|  Profil
Editieren
Zitieren
|
michael
Foren-Team
Beiträge: 1933
|
oder beides,...
if($gesendet == "yes")
{
// die mail-prozedur, eine danke-ausgabe, etc.
}
else
{
// ausgabe des formulars
}
|
|  Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
ja, aber wie kann ich dann das formular verschwinden lassen wenn die mail versendent wurde ? ich geb euch mal den Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/main.css">
<?php
$mail_body = "Hallo Paul,n $name hat dir eine email geschrieben. n Seine email lautet: $mail n seine nachricht: n $text";
$mailto = " paul@paul-putzar.de";
$subject = "Kontakt";
if($gesendet == "yes")
{
mail($mailto,$subject,$mail_body);
echo ("<p>Danke, die email ist abgeschickt worden</p>");
}
?>
<title>kontaktformular</title>
</head>
<body bgcolor="#66aadd">
<form action="<? $PHP_SELF ?>" method="post">
<input type="hidden" name="gesendet" value="yes">
<table align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<b>name:</b>
</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>
<b>email:</b>
</td>
<td>
<input type="text" name="mail">
</td>
</tr>
<tr>
<td>
<b>Nachricht:</b>
</td>
<td>
<textarea name="text"></textarea>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="senden..">
</td>
</tr>
</table>
</form>
</body>
</html>
Danke jetzt schon
AXo
|
|  Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
|
|  Profil
Editieren
Zitieren
|
michael
Foren-Team
Beiträge: 1933
|
das formular musst du in den else-teil packen (siehe mein posting). damit das so dargestellt wird am besten nach der geschwungenen klammer bei else php beenden ?> das formular hereinkopieren und dann wieder anfangen <?
frohe weihnachten.
|
|  Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
sorry, check ich immernoch nicht...
|
|  Profil
Editieren
Zitieren
|
einstein
Quasselstrippe
Beiträge: 241
|
unkonventioneller Vorschlag: leite den Besucher einfach auf die Datei "mail_versendet.htm" weiter, wenn die Mail verschickt worden ist, also so:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64: |
<?php
$mail_body = "Hallo Paul,n ".$_POST[name]." hat dir eine email geschrieben. n Seine email lautet: $mail n seine nachricht: n ".$_POST[text];
$mailto = "paul@paul-putzar.de";
$subject = "Kontakt";
if($_POST[gesendet] == "yes")
{
mail($mailto,$subject,$mail_body);
Header("Location: mail_versendet.htm");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/main.css">
<title>kontaktformular</title>
</head>
<body bgcolor="#66aadd">
<form action="<? $PHP_SELF ?>" method="post">
<input type="hidden" name="gesendet" value="yes">
<table align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<b>name:</b>
</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>
<b>email:</b>
</td>
<td>
<input type="text" name="mail">
</td>
</tr>
<tr>
<td>
<b>Nachricht:</b>
</td>
<td>
<textarea name="text"></textarea>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="senden..">
</td>
</tr>
</table>
</form>
</body>
</html>
|
Bei der Weiterleitung muss der PHP-Code oberhalb stehen, da vor der Weiterleitung nichts ausgegeben werden darf.
|
|  Profil
Editieren
Zitieren
|
Andreas S
Otto-Normal-Poster
Beiträge: 81
|
Die Eingaben des Users sollten aber auch gecheckt werden...
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86: |
<?php
echo <<<TopHtml
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/main.css">
</head>
<body bgcolor="#66aadd">
TopHtml;
if(isset($HTTP_POST_VARS['absenden'])){
$name= trim($HTTP_POST_VARS['name']);
$text = trim($HTTP_POST_VARS['text']);
if((!preg_match('/^[w-.]+@(w+[w-]+.){0,3}w+[w-]+.[a-zA-Z]{2,4}$/',$HTTP_POST_VARS['email']))){
echo "Ungültige Email Adresse!";
exit;
}
if(empty($name)){
echo "Dein Name fehlt!";
exit;
}
if(empty($text)){
echo "Deine Nachricht fehlt!";
exit;
}
mail("paul@paul-putzar.de","Kontakt","Hallo Paul,n" . htmlentities($HTTP_POST_VARS['name']) . "hat dir eine email geschrieben. n Seine email lautet:" . htmlentities($HTTP_POST_VARS['email']) . "n seine nachricht: n" . htmlentities($HTTP_POST_VARS['text']));
echo "Danke!";
exit;
}
echo <<<KontaktHTML
<form action="$HTTP_SERVER_VARS[PHP_SELF]" method="post">
<table align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<b>name:</b>
</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>
<b>email:</b>
</td>
<td>
<input type="text" name="email">
</td>
</tr>
<tr>
<td>
<b>Nachricht:</b>
</td>
<td>
<textarea name="text"></TEXTAREA>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="absenden" value="senden..">
</td>
</tr>
</table>
</form>
KontaktHTML;
echo <<<bottomHTML
</body>
</html>
bottomHTML;
?> |
[ Diese Nachricht wurde geändert von: Andreas S am 2002-12-24 16:28 ]
|
|  Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#644)
Forenheld
Beiträge: 835
|
geht nich, gibt mir ne fehlermeldung aus ...
|
|  Profil
Editieren
Zitieren
|
Andreas S
Otto-Normal-Poster
Beiträge: 81
|
Sorry, kann das hier jetzt nicht testen..
Was sagt der Fehler?
Edit: Habs nochmal editiert... versuchs bitte nochmal.
|
|  Profil
Editieren
Zitieren
|
einstein
Quasselstrippe
Beiträge: 241
|
da ist jetzt m.E. kein Fehler mehr drin, ist aber doch recht umständlich gemacht, aber für nen Formmailer reichts allemal
|
|  Profil
Editieren
Zitieren
|