我正在尝试使用一些ajax发送一些电子邮件。我在使用冷聚变之前做过这个并没有问题。
我遇到的是 localhost 找不到目录中明显的文件。实际上,该文件与index.php位于同一目录中,但没有问题。但是它在我的send.php文件中给了我 404错误文件。我甚至试图通过地址栏直接进入页面,但它找不到该文件。 如果我放入文件路径,即 - file:/// C://xampp/htdocs/3H-Web-Wlements/send.php,它将显示代码。
但是,当我上传到我的活动服务器时,它没有任何问题。
我在这里缺少什么?
以下是日志中的错误: [Wed Sep 23 19:33:34.295785 2015] [:error] [pid 2552:tid 1752] [client :: 1:63670] script' C:/xampp/htdocs/index.php'未找到或无法统计,引用:http://localhost/3H-Web-Wlements/
我是否有错误配置甚至未配置? 就像我说的。它适用于我的活动服务器,但仅在localhost上失败。
我的send.php代码
<?php
/*
**************************************
* *
* Config here *
* *
**************************************
*/
$to = 'xxx@gmail.com';
$subject = 'Message from website';
$siteName = "xxx";
/*
*************************************************************
* *
* Don't Change below code, if you don't know php. *
* *
*************************************************************
*/
$name = $_POST['contactName'];
$mail = $_POST['contactEmail'];
$subject = $_POST['contactWebsite'];
$note = $_POST['contactMessage'];
$ipAdd = $_POST['contactIp'];
if (isset($name) && isset($mail) && isset($note)) {
// $mailSub = '[Contact] [' . $siteName . '] '.$subject;
$body = 'Sender Name: ' . $name . "\n\n";
$body .= 'Sender IP: ' . $ipAdd . "\n\n";
$body .= 'Sender Mail: ' . $mail . "\n\n";
$body .= 'Website: ' . $subject . "\n\n";
$body .= 'Message: ' . $note;
$message = $body;
$header = 'From: ' . $mail . "\r\n";
$header .= 'Reply-To: ' . $mail . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion();
// mail($to, $mailSub, $body, $header);
mail($to, $subject, $message, $headers);
}else{
echo '0';
}
?>
答案 0 :(得分:1)
根据您提供的错误消息以及您在localhost上导航到的URL的模糊性,我怀疑您的问题的根本原因源于在开发服务器和生产服务器上设置了两个不同的文档根。
如果我是对的,可以通过将开发服务器的文档根目录从class SomeWizard(SessionWizardView):
def get_form(self, step=None, data=None, files=None):
form = super(SomeWizard, self).get_form(step, data, files)
# determine the step if not given
if step is None:
step = self.steps.current
if step == "2":
option = self.get_cleaned_data_for_step("1")['choice']
choice = Choice.objects.filter(question__text__exact=option)
## Pass the data when initing the form, which is the POST
## data if the got_form function called during a post
## or the self.storage.get_step_data(form_key) if the form wizard
## is validating this form again in the render_done methodform
form = SomeForm(choice=choice, data=data)
return form
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def done(self, form_list, **kargs):
return render_to_response('done.html')
更改为C://xampp/htdocs/
来解决此问题。使用此设置,服务器将尝试从C://xampp/htdocs/3H-Web-Wlements/
而不是index.php
投放3H-Web-Wlements/
。
文档根设置可以在Apache的配置文件中设置,通常称为htdocs/
。如果你正在使用像XAMPP或MAMP这样的开发设置,你可能在控制面板上有一个按钮来访问httpd.conf。
更改后,设置应如下所示:
httpd.conf
进行更改后,您需要重新启动Web服务器才能使更改生效。
答案 1 :(得分:0)
在php上发送电子邮件功能比在localhost上测试活动服务器好得多,因为localhost需要配置为支持电子邮件功能,同时已经为此设置了活动服务器。我也经历过它。