Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP mail()的联系人表单响应500个错误_Php_Ajax - Fatal编程技术网

使用PHP mail()的联系人表单响应500个错误

使用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

我正在尝试使用ajax和PHP获得一个联系人表单,但每次都会收到500个错误响应。PHP不是我的强项,我花了几个小时试图在我的代码中找到错误,因为我知道肯定有错误。我甚至试过用过梁,但他们告诉我一切都好

JS

PHP


在代码示例中,您有一行代码

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 );
}