我为已经创建的网站创建了一个PHP电子邮件脚本。我将包含HTML表单和与之相关的JavaScript以及我创建的PHP脚本。我的问题是当我在hostgator主机和我的localhost上安装它时,它运行正常。
但是当我在朋友使用的主机中安装它时,它会产生500内部服务器错误。什么可能导致这样的错误?
<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>
$('#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
$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");
?>
答案 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”,或者完全删除该行。