【发布时间】:2017-09-07 23:02:52
【问题描述】:
这可能看起来像个业余的东西,但在 php 方面我是个业余爱好者......
基本上,我为我所在的组织创建的网站需要联系表,因为我一直在努力学习,我更愿意自己编写代码,而不是仅仅获得一些插件。但是我的代码似乎不太好用。
也是第一篇文章,我很确定这不是重复的,因为它是不同的代码,我一直在这个网站上使用帖子来尝试让它工作但没有运气,所以最好发布我的代码希望脑细胞比我多的人能帮上忙
这是页面本身的 html:
<form method="post" action="contactengine.php">
<label for="Name"><h2>Your Name:</h2></label>
<input type="text" name="Name" id="Name" placeholder="Please Enter Your Name"/>
<label for="Email"><h2>Your Email:</h2></label>
<input type="email" name="Email" id="Email" placeholder="Please Enter Your Email Address"/>
<label for="Message"><h2>Message:</h2></label><br />
<textarea name="Message" rows="20" cols="20" id="Message"></textarea>
<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>
PHP:
<?php
$EmailFrom = "webmaster@temporary.co.uk";
$EmailTo = "webmaster@temporary.co.uk";
$Subject = "Contact Form Submission";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
我觉得很愚蠢,因为有大量关于创建工作联系表单的文献,但似乎没有一个有效
我托管在 1and1 上,如果这有什么不同?
提前致谢
编辑:好的,我忘了提到问题:电子邮件只是没有发送,所以我实际上不知道成功是否有效,我尝试了不同的电子邮件地址,检查了整个 shabang 的垃圾邮件 - 所以我我正在努力找出问题所在
【问题讨论】:
-
究竟什么不起作用???哪里有问题?这是一个错误吗?这是什么?
-
有什么错误吗?有日志吗?
$success的值是多少? -
仅供参考,而不是呈现 HTML 来执行重定向,请查看
header函数。例如。header('Location: contactthanks.php'); -
忘记添加问题 - 我不知道表单是否正常工作,因为无论在 php 中输入什么地址,都没有发送电子邮件
-
自己找出问题并不难。首先检查提交变量的值($name,$email)。如果它们为空,则提交的表单存在问题。如果这有效,请检查 $success 的值以了解电子邮件是否正确发送