WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » mail() » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

mail()
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&auml;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>&nbsp; 
</td> 
<td> 
<textarea name="text"></textarea> 
</td> 
</tr> 
<tr> 
<td> 
&nbsp; 
</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>&nbsp;
</td>
<td>
<textarea name="text"></textarea>
</td>
</tr>
<tr>
<td>
&nbsp;
</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

Nach oben