【发布时间】:2013-11-10 19:37:59
【问题描述】:
我知道我的 php 表单在 godaddy 服务器上工作: http://thespanishlanguageacademy.net/los-angeles/learn-spanish-kids-children/kontact.html
请自行测试,输入您的电子邮件地址,它会向您发送一份副本。
我将相同的代码复制到不同的服务器中。这个服务器不是爸爸。我知道 php 在这台服务器上工作,但由于某种原因,这种形式不工作:
http://hancockcollege.us/kontact.html
这里是php代码:
// if the Email_Confirmation field is empty
if(isset($_POST['Email_Confirmation']) && $_POST['Email_Confirmation'] == ''){
// put your email address here scott.langley.ngfa@statefarm.com, slangleys@yahoo.com
$youremail = 'bomandty@gmail.com';
// prepare a "pretty" version of the message
$body .= "Thank You for contacting us! We will get back with you soon.";
$body .= "\n";
$body .= "\n";
foreach ($_POST as $Field=>$Value) {
$body .= "$Field: $Value\n";
$body .= "\n";
}
$CCUser = $_POST['EmailAddress'];
// Use the submitters email if they supplied one
// (and it isn't trying to hack your form).
// Otherwise send from your email address.
if( $_POST['EmailAddress'] && !preg_match( "/[\r\n]/", $_POST['EmailAddress']) ) {
$headers = "From: $_POST[EmailAddress]";
} else {
$headers = "From: $youremail";
}
// finally, send the message
mail($youremail, 'Form request', $body, $headers, $CCUser );
}
// otherwise, let the spammer think that they got their message through
【问题讨论】:
-
如果它在一台服务器上工作但在另一台服务器上工作,那么它可能是特定于服务器的。但是,我会注意到
$headers = "From: $_POST[EmailAddress]";应该是$headers = "From: $_POST['EmailAddress']";。您忘记了密钥名称周围的引号。 -
这不起作用:$headers = "From: $_POST['EmailAddress']";
-
当您说“它不起作用”时,您的意思是您收到错误消息,还是您仍然没有收到邮件?它仍然可能是特定于服务器的 - 关于配置和/或垃圾邮件过滤器。我之所以这么说是因为您声称您当前的代码在 GoDaddy 服务器上运行良好,但在您遇到问题的备用服务器上运行良好。
-
没用。没有邮寄。代码错误。
-
服务器可能不支持mail()函数。