使用PHP mail()的联系人表单响应500个错误
我正在尝试使用ajax和PHP获得一个联系人表单,但每次都会收到500个错误响应。PHP不是我的强项,我花了几个小时试图在我的代码中找到错误,因为我知道肯定有错误。我甚至试过用过梁,但他们告诉我一切都好 JS PHP使用PHP mail()的联系人表单响应500个错误,php,ajax,Php,Ajax,我正在尝试使用ajax和PHP获得一个联系人表单,但每次都会收到500个错误响应。PHP不是我的强项,我花了几个小时试图在我的代码中找到错误,因为我知道肯定有错误。我甚至试过用过梁,但他们告诉我一切都好 JS PHP 在代码示例中,您有一行代码 if (mail($recipient, $subject, $email_content, $email_headers)) { 如果mail返回false,它会跳转到else语句,这样说: // Set a 500 (internal server
在代码示例中,您有一行代码
if (mail($recipient, $subject, $email_content, $email_headers)) {
如果mail
返回false,它会跳转到else
语句,这样说:
// Set a 500 (internal server error) response code.
http_response_code(500);
echo "Something went wrong and your message couldn't be sent.";
我猜您的服务器没有设置sendmail
。
如果您有访问权限和/或使用var\u dump
(或者如果您知道如何使用xdebug),请尝试读取服务器日志,并按如下方式打印参数:
if (mail($recipient, $subject, $email_content, $email_headers)) {
// ...
}
else {
var_dump( error_get_last() );
var_dump( $recipient );
var_dump( $subject );
var_dump( $email_content );
var_dump( $email_headers );
}
日志显示了什么?这是一台服务器error@Fred-ii-我已尝试查看日志,但当我在PHPMyAdmin中进入状态>监视器时,我没有权限启用慢速查询日志和常规日志。是否有其他方式查看日志?您需要检查HTTP服务器的错误日志,而不是MySQL。另外,尝试添加var_dump(error_get_last())
进入else
块,在那里您有http\u response\u code(500)
服务器日志通常保存在/var/logs(取决于您的系统)周围的某个地方-如果它是共享主机,请尝试在您的管理面板中查找日志现在查看一下,添加var\u dump(error\u get\u last())代码>生成空值,但我觉得奇怪。我会继续研究这个,谢谢我会尝试一下,链接的主题真的很有帮助,非常感谢!
// Set a 500 (internal server error) response code.
http_response_code(500);
echo "Something went wrong and your message couldn't be sent.";
if (mail($recipient, $subject, $email_content, $email_headers)) {
// ...
}
else {
var_dump( error_get_last() );
var_dump( $recipient );
var_dump( $subject );
var_dump( $email_content );
var_dump( $email_headers );
}