von einstein |
da ist jetzt m.E. kein Fehler mehr drin, ist aber doch recht umständlich gemacht, aber für nen Formmailer reichts allemal
|
von Andreas S |
Sorry, kann das hier jetzt nicht testen..
Was sagt der Fehler?
Edit: Habs nochmal editiert... versuchs bitte nochmal.
|
von paul |
geht nich, gibt mir ne fehlermeldung aus ...
|
von Andreas S |
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 ] |
von einstein |
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. |
von paul |
sorry, check ich immernoch nicht... |
von michael |
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.
|
von paul |
|
von paul |
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 |
von michael |
oder beides,...
if($gesendet == "yes")
{
// die mail-prozedur, eine danke-ausgabe, etc.
}
else
{
// ausgabe des formulars
}
|
von paul |
also, soll ich dann statt dem echo blabla, mail(bla,bla,bla) usw. ???
oder wie ?
|
von paul |
sau cool, danke... |
von Agent |
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 |
von paul |
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 |
|