PHP电子邮件脚本给出500内部服务器错误

时间:2017-02-27 16:53:25

标签: javascript php email internal

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

但是当我在朋友使用的主机中安装它时,它会产生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");
?>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

检查cPanel中的错误日志以获取特定信息。错误消息具有足够的描述性,无需进一步调查即可确定错误。

500内部服务器错误可能由许多因素引起,包括但不限于无效权限无效所有权 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

Bad .htaccess,无效的代码,命令或语法

.htaccess文件中,您可能添加了包含拼写错误,措辞错误或冲突的行。解决此问题的最佳方法是注释.htaccess

中的行

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

<强>了FollowSymLinks

此错误如下所示:

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

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