我正在尝试使用HTML和PHP创建联系表单。表格的PHP如下:
<?php
if(isset($_POST['email'])) {
// Email to information
$email_to ="personalemail@email.com";
$email_subject ="Contact";
$email_from ="Person";
// Error code
function died($error) {
echo "We are 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/>";
die();
}
// Validation
if(!isset($_POST['fname']) || !isset($_POST['lname']) || !isset($_POST['email']) || !isset($_POST['message'])) {
died('We are sorry but there appears to be a problem with the form you submitted.');
}
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$message = $_POST['message'];
$error_message = "";
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_message .= 'The email address you entered does not appear to be valid.<br/>';
}
$string_exp = "/^[A-Za-z.'-]+$/";
if(!preg_match($string_exp, $fname)) {
$error_message .= 'The first name you entered does not appear to be valid.<br/>';
}
if(!preg_match($string_exp, $lname)) {
$error_message .= 'The last name you entered does not appear to be valid.<br/>';
}
if(strlen($message) < 2) {
$error_message .= 'The message you entered does not appear to be valid.<br/>';
}
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 .= "Name:" . clean_string($fname) . clean_string($lname) . "\n";
$email_message .= "Email:" . clean_string($email) . "\n";
$email_message .= "Message:" . clean_string($message) . "\n";
// Create email headers
$headers = 'From: ' .$email_From . "\r\n". 'Reply-To:' . $email. "\r\n" . 'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
?>
Thankyou for contacting me. I will be in contact with you shortly. <br/>
Please click <a href="index.html">here</a> to go back to the main website
<?php
}
?>
问题是,在提交表单时,它永远不会向我自己的个人电子邮件发送电子邮件。有什么更多我必须设置与网络托管或纯粹在代码中的问题?我做了一些关于适当的代码的研究,并尝试了许多不同的选项,但似乎都没有。
答案 0 :(得分:0)
发送电子邮件的表单是错误的,更糟糕的是,如果出现问题,您和最终用户通常都不会收到错误消息。他们只会认为您的客户服务没有响应。出错的地方:网络服务器电子邮件服务器关闭或配置错误,收到邮箱已满,垃圾邮件过滤器吃电子邮件,网络服务器的电子邮件服务器规则发生变化并丢弃邮件。
我建议使用云托管表单,该表单存储表单提交并通过电子邮件通知您,但电子邮件不是主要数据存储。
或许这样的事情有一个免费的计划: http://www.wufoo.com/features/