Fehlermeldung im Kontaktformular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anbieter
auswertung
botschaft
email
feedback
fehler
formular
gruss
hilfe
kommentar
meinung
meldung
muster
schnelle antwort
script
versuchen
-
Hallo!
Bin neu hier und hoffe ich mach alles richtig.
Ich bin gerade am PHP lernen und habe versucht ein Kontaktformular herzustellen (mit hilfe vum Buch: PHP und MySQL f?r Kids). Doch wenn ich alles richtig ausf?lle kommt unten die Meldung: "Leider gab es einen Sendefehler!"
Also was mach ich Falsch:
Hier ist auch noch das Script:
<form action="<?php echo $_SERVER['PHP_SELF'];
?>" method="post">
<font face="Arial, Helvetica, sans-serif" size="-2">Name:
<input type="text" name="Name"
value="<?php echo htmlspecialchars(stripslashes($_POST['Name']));
?>">
<br>
E-Mail-Adresse:
<input type="text" name="Email"
value="<?php echo htmlspecialchars(stripslashes($_POST['Email']));
?>">
<br>
Kommentar: <br>
<textarea name="botschaft" cols="50" rows="5">
<?php echo stripslashes($_POST['botschaft']);
?>
</textarea>
<br>
<input type="submit" value="Absenden" name="submit">
</font>
</form>
<font face="Arial, Helvetica, sans-serif" size="-2">
<?php
if (isset($_POST['submit'])) {
$fehler = false;
$fehlertext = "";
if (empty($_POST['Name'])) {
$fehler = true;
$fehlertext .= "Der Name fehlt!<br>\n";
} else if (strlen($_POST['Name']) < 3) {
$fehler = true;
$fehlertext .= "Der Name ist zu kurz<br>\n";
}
$muster = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (empty($_POST['Email'])) {
$fehler = true;
$fehlertext .= "Die E-Mail-Adresse fehlt!<br>\n";
} else if (preg_match($muster, $_POST['Email']) == 0) {
$fehler = true;
$fehlertext .= "Die E-Mail-Adresse ist ung?ltig!<br>\n";
}
if (empty($_POST['botschaft'])) {
$fehler = true;
$fehlertext .= "Das Kommentar-Feld muss ausgef?llt werden!<br>\n";
} else if (strlen($_POST['botschaft']) < 3) {
$fehler = true;
$fehlertext .= "Der Kommentar ist zu kurz<br>\n";
}
if ($fehler) {
echo "<p>$fehlertext</p>";
} else {
$mailbody = $_POST['Name'] . " schrieb\n\n";
$mailbody .= $_POST['botschaft'];
$mailbody = stripslashes($mailbody);
$Email = $_POST['Email'];
if (@mail("casale-eden@hotmail.com", "Feedback", $mailbody, "From: $Email")) {
echo "<p>Danke! Die Botschaft wurde weitergeleitet!</p>\n";
} else {
echo "<p>Leider gab es einen Sendefehler!</p>\n";
}
}
}
?>
W?rde mich echt freuen wenn mir jemand helfen k?nnte.
Gruss Silvan
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
if (@mail("casale-eden@hotmail.com", "Feedback", '$mailbody', "From: ".$Email."))
M?sste glaub ich so hei?en
Der Mailbefehl ist ein wenig kompliziert -
@kai008
Danke f?r die schnelle Antwort! Hab ich gemacht... doch es hat immer noch nicht geklappt.. doch dann hab ich in einem Thema weiter unten gelesen, dass es auf dem Server Pyrokar keine mailto scripts gehen. Hab jetzt das Formular auf einen anderen Sever hochgeladen und es hat funktioniert.
Jedenfals nur das abschicken. Als ich aber die Mail lesen wollte steht im Text Bereich nur " $mailbody ".
Weiss jemand an was das liegen k?nnte?
Oder braucht man f?r die Mail Auswertung ein anderen Mail Anbieter (ich habe hotmail)?
Gruss Silvan
-
Versuche mal statt '$mailbody' ".$mailbody."
-
if (@mail("casale-eden@hotmail.com", "Feedback", $mailbody, "From: ".$Email))
also meiner meinung nach muss es ziemlich sicher so hei?en.
variablen darf man NIE unter anf?hrungszeichen setzen. sie werden sonst nicht als variablen erkannt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage