【问题标题】:PHP email script giving a 500 internal server errorPHP 电子邮件脚本给出 500 内部服务器错误
【发布时间】:2017-07-18 09:29:51
【问题描述】:

我已经为一个已经创建的网站创建了一个 PHP 电子邮件脚本。我将包含 HTML 表单和与之相关的 JavaScript 以及我创建的 PHP 脚本。我的问题是当我将它安装在我的 hostgator 主机和本地主机上时,它工作正常。

但是当我将它安装在我朋友使用的主机上时,它给出了 500 内部服务器错误。什么可能导致这样的错误?

HTML:

<form action="mailer.php" method="post" name="form1" id="form"  class="form-full-width contact-form">
  <div class="row">
    <div class="col-xs-12 col-sm-12">
      <div class="form-group">

        <input placeholder="YOUR NAME*"  type="text" id="contact-name" name="name"  required  data-validate="^[ا-ی\w\s]{2,30}$" />

      </div>
    </div>
    <div class="col-xs-12 col-sm-12">
      <div class="form-group">

        <input  placeholder="Email*" type="email" id="contact-email" name="from" required  data-validate="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />

      </div>
    </div>
    <div class="col-xs-12 col-sm-12">
      <div class="form-group">

            <input placeholder="ORDER ID*" type="text" id="contact-subject"  name="order"  aria-describedby="name-format" required  />
      </div>
    </div>
    <div class="col-xs-12 col-sm-12">
      <div class="form-group">

        <textarea placeholder="YOUR MESSAGE*" id="contact-message" name="message" required   data-validate=".{2,400}$"></textarea>
      </div>
    </div>
    <div class="col-xs-12 col-sm-12 text-left">
      <div class="wrap-main">
        <input name="Submit" type="submit" id="submit" class="btn btn-main btn-primary btn-lg uppercase" value="Send Message"/>
      </div>
    </div>
  </div>
</form>

Javascript:

 $('#contact-form').on('submit', function(e) {
    e.preventDefault();
    // we clear error messages
    $(this).find('.error').removeClass('error');
    $(this).find('.err_msg').fadeOut(200);

    // validate form
    var validation = validate_contact(e);

    for (var i = 0; i < validation.length; i++) {
        $(validation[i]).addClass('error');
    }

    if (validation.length) {
        $('body, html').animate({
            'scrollTop': $(validation[0]).offset().top - 100
        }, 'easeInCube', function() {
            $(this).select();
        });
        return false;
    } else {
        submit_form(e);
        return true;
    }
});

function validate_contact(e) {
    var $form = $(e.target);
    var rule, val, bad_fields = new Array();
    $form.find('input, textarea').each(function() {
        rule = $(this).data('validate');
        if (!rule) return;

        val = $(this).val();
        if (!val.match(rule)) {
            bad_fields.push(this);
        }
    });
    return bad_fields;
}

PHP:

<?php
    $admin_email = "1991praneeth@gmail.com"; // Enter your email adress here
    $name = $_REQUEST["name"];
    $message = $_REQUEST["message"];
    $from = $_REQUEST["from"];
    $order = $_REQUEST["order"];
    $message = str_replace("\n", "<br />", $message);
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'To: Amazon Auto Sales <'.$admin_email.'>' . "\r\n";
    $headers .= 'From: '.$name.' <'.$from.'>' . "\r\n";
    $message1 = '<html><body style="font-family:verdana;">';
    $message1 .= '<div style="width:600px; height:50px; text-align:center; background:#FFF;">';
    $message1 .= '<h2 style="color:#D2583E; font-size:18px;">New Email from Amazon Auto Sales Form!</h2></center>';
    $message1 .= '</div>';
    $message1 .= '<div style="width:600px; border:1px solid #999; margin-bottom:10px; padding:10px;">';
    $message1 .= '<b>From</b>';
    $message1 .= '

 - '.$name.'<br/>';
    $message1 .= '<b>User Email</b>';
    $message1 .= ' - '.$from.'<br/>';
    $message1 .= '<b>Order ID</b>';
    $message1 .= ' - #'.$order.'<br/>';
    $message1 .= '<br/>'.$message.'';
    $message1 .= '</table></div>';
    $message1 .= '</body></html>';
    mail("$admin_email", "Order #".$order, $message1, $headers);
    header("location:contact.php?sent=yes");
?>

【问题讨论】:

  • 500 => 检查您的日志
  • 我检查过了,最后一行是 500 和一些随机字符,没有意义。
  • 检查您的文件权限。是 644 吗?
  • 是的,我什至将其设置为 777,但仍然报错。
  • 尽管日志可能对您没有意义,但请发布以供我们审核。

标签: javascript php email internal


【解决方案1】:

验证您的好友服务器上是否安装了 php,并且您的 php.ini 文件中是否启用了邮件

【讨论】:

    【解决方案2】:

    查看 cPanel 中的错误日志以获取具体信息。错误消息的描述性足以确定错误而无需进一步调查。

    500 Internal Server Error 可能由多种原因引起,包括但不限于 无效权限无效所有权php.ini 中的错误行或 .htaccess 文件脚本中的无效请求,以及此处未提及的其他内容。

    这通常不是服务器本身的问题,通常可以通过修改站点配置中的某些内容来解决。


    权限错误,可按组写入

    错误的权限错误可能如下所示:

    [Sun Jun 05 12:03:22 2012] [error] [client 00.000.00.00] SoftException in Application.cpp:601: Directory "/home/XXXXXXXXX/public_html/example.php" is writeable by group
    

    在这种情况下,该文件夹对某个文件夹的权限设置得太高。要更正此问题,需要将权限从“777”更改为“755”。

    目录和文件夹应该是 755。 cgi-bin 文件夹中的可执行脚本必须为 755。图片、媒体和文本文件(如 HTML)应为 644

    文件 - 644
    CGI 脚本 - 755
    目录 - 755


    .htaccess 错误,代码、命令或语法无效

    .htaccess 文件中,您可能添加了有错别字、措辞不当或冲突的行。解决此问题的最佳方法是注释掉 .htaccess 中的行。

    您可以通过在开头添加 # 来注释掉 .htaccess 中的一行。建议您在进行更改之前保存任何文件的原始副本。


    关注符号链接

    这个错误看起来像这样:

    [Fri Jun 28 12:07:10 2011] [alert] [client 00.000.000.000] /home1/XXXXXXXXXXXX/public_html/.htaccess: Option FollowSymlinks not allowed here
    

    对于这种情况,请使用允许的指令——在这种情况下使用“SymlinksIfOwnerMatches”而不是“FollowSymlinks”,或者完全删除该行。


    【讨论】:

      猜你喜欢
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多