Ich möchte eine E-Mail mit Eingabedaten von meiner HTML-Seite senden. Ich benutze nächste PHP-Skript:PHP-Code zeigt leere Seite
<?php
if((isset($_POST['budget']))&&(isset($_POST['type']))) {
$email_to = "[email protected]";
$email_subject = "Design";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['budget']) ||
!isset($_POST['type'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$email = $_POST['email']; // required
$budget = $_POST['budget']; // required
$type = $_POST['type']; // required
$comments = $_POST['comments']; // not required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
$string_exp = "/^[A-Za-z .'-]+$/";
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Email: ".clean_string($email)."\n";
$email_message .= "Budget: ".clean_string($budget)."\n";
$email_message .= "Type: ".clean_string($type)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- THERE MY PHP CODE, I REMOVED IT ESPECIALLY FOR STACKOVERFLOW, BUT IT EXIST -->
<?php
}
?>
Aber es funktioniert nicht. Wenn ich auf "Senden" klicke, wird eine leere Seite angezeigt. Ich kann nicht verstehen, was das Problem ist.
Auch habe ich versucht nächste Skript und es funktionierte perfekt:
<?php
$to = "[email protected]";
$subject = "This is subject";
$message = "<b>This is HTML message.</b>";
$message .= "<h1>This is headline.</h1>";
$header = "From:[email protected] \r\n";
$header .= "Cc:[email protected] \r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html\r\n";
$retval = mail ($to,$subject,$message,$header);
if($retval == true) {
echo "Message sent successfully...";
}else {
echo "Message could not be sent...";
}
?>
Eine leere Seite ist normalerweise ein interner Serverfehler. Was enthält das Fehlerprotokoll Ihres Webservers? – TZHX
Sie müssen expliziter mit der Post sein. Bereiten Sie einen Fall vor. Was hast du probiert? Wenn Sie auch hier etwas finden und das Problem nicht beheben kann. Wenn Sie zum Beispiel einen Fehler auf der Konsole haben, müssen Sie ihn anzeigen. Wenn Sie mehr Informationen geben, ist es ein bisschen besser. –
Nichts. Ich habe dieses Skript auf einem anderen Hosting versucht und es hat perfekt funktioniert. –