首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >联系人表单提交错误

联系人表单提交错误
EN

Stack Overflow用户
提问于 2012-12-17 15:59:36
回答 2查看 320关注 0票数 0

我有一个简单的联系人表单设置,但我有一点问题与最后的润色。每当提交表单时,我都会收到一条错误消息。我希望有人能看看我的代码并指出我的错误。谢谢!

(编辑)忘记提到的错误是,一旦表单提交,我将被重定向到错误页面(error.html)而不是成功页面(contactthanks.php)。

HTML:

代码语言:javascript
运行
复制
<form method="post" action="contactengine.php">
<label for="Name">Name:</label>
<input type="text" name="Name" id="Name" />

<label for="City">City:</label>
<input type="text" name="City" id="City" />

<label for="Email">Email:</label>
<input type="text" name="Email" id="Email" />

<label for="Message">Message:</label><br />
<textarea name="Message" rows="20" cols="20" id="Message"></textarea>

<input type="submit" name="submit" value="Submit" class="submit-button" />
</form>

PHP:

代码语言:javascript
运行
复制
<?php

$EmailFrom = "";
$EmailTo = "MYEMAIL@gmail.com";
$Subject = "";
$Name = Trim(stripslashes($_POST['Name'])); 
$Tel = Trim(stripslashes($_POST['Tel'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Message = Trim(stripslashes($_POST['Message'])); 


$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
exit;
}


$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $Tel;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";


$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>
EN

回答 2

Stack Overflow用户

发布于 2012-12-17 16:29:02

代码语言:javascript
运行
复制
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}

它将重定向到您的错误页面,因为对mail的调用返回false (表明电子邮件未被接受传递),而这正是您在这种情况下告诉它要做的事情。

您需要检查服务器上的SMTP设置。

通常,要检查的设置是PHP.ini文件中的sendmail_fromsendmail_path。由于您已经在设置From标头,因此sendmail_path很可能没有正确设置。

票数 1
EN

Stack Overflow用户

发布于 2012-12-17 16:27:37

查看是什么导致了问题

代码语言:javascript
运行
复制
ini_set("display_errors", "1"); 
error_reporting(E_ALL);`. 

我的猜测是你有错误的smtp设置和mail功能失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13910304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档