2015-09-24 2 views
0

Я пытаюсь использовать некоторые ajax для отправки некоторых сообщений электронной почты. Я сделал это, прежде чем использовать холодный синтез и не имел проблем.404 ошибка на localhost

То, что я использую, это то, что localhost не находит файл, который явно находится в каталоге. Фактически файл находится в том же каталоге, что и index.php, который не обнаруживает проблем. Однако это дает мне файл ошибки 404 не найден в моем файле send.php. Я даже попытался перейти непосредственно на страницу через адресную строку и не нашел файл. Если я положу путь к файлу ie - 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/

Есть ли у меня что-то неправильно сконфигурированное или даже не настроенное?
Как я уже сказал. Он работает на моем активном сервере, но не работает только на локальном хосте.

мой send.php код

<?php 
/* 
************************************** 
*         * 
* Config here      * 
*         * 
************************************** 
*/ 

$to = '[email protected]'; 
$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

Когда вы посещаете файл: /// вы открываете файл, как и любой другой в средстве просмотра файлов вашего браузера, вместо того, чтобы запускать его на веб-сервере HTTP через http: // – aqq

+0

после получения ошибки 404, проверьте свой Apache (или другой веб-сервер ...) журнал ошибок - он скажет вам, какой файл Apache _tried_ должен обслуживать. Это должно дать вам несколько советов - обновите нас этим файлом, если вы еще не можете понять это. На Ubuntu Linux я нашел свой журнал ошибок в '/ var/log/apache2/error.log'. – HPierce

+0

Yikes. Я не перенаправляю - я ожидаю, что пустой белый экран будет вызван успешно (или 0 при ошибке). Последний вопрос: на активном сервере - url 'example.com/send.php' или 'example.com/3H-Web-Wlements/send.php'? – HPierce

ответ

1

Основываясь на сообщении об ошибке, которое вы указали, и о неизвестности URL-адреса, на который вы переходите на локальный хост, я подозреваю, что основная причина вашей проблемы связана с наличием двух разных корней документов, установленных на сервере разработки и на рабочем сервере.

Если я прав, это можно устранить, изменив корень документа вашего сервера разработки с C://xampp/htdocs/ до C://xampp/htdocs/3H-Web-Wlements/. С помощью этого набора сервер будет пытаться обслуживать index.php от 3H-Web-Wlements/ вместо htdocs/.

Корневой параметр документа может быть установлен в файле конфигурации Apache, обычно называемом httpd.conf. Если вы используете настройку разработки, такую ​​как XAMPP или MAMP, у вас, вероятно, есть кнопка на панели управления, чтобы попасть в httpd.conf.

Установка должна выглядеть следующим после изменения:

DocumentRoot C://xampp/htdocs/3H-Web-Wlements/ 

После внесения изменений, вам нужно будет перезагрузить веб-сервер для того, чтобы изменения вступили в силу.

+0

Спасибо, что это было. Теперь он действует правильно. –

0

Отправка функции электронной почты на PHP гораздо лучше, чтобы проверить на активном сервере локального хоста, чем потому, что локальный необходимо настроить для поддержки функции электронной почты в то время как активный сервер, уже создан для этого. Я тоже испытал это.

+0

Я вижу вашу точку зрения, и я стараюсь избегать всех испытаний и разработки для этого. Я пытаюсь сделать тест перед активным. Я действительно не хочу, чтобы писать дополнительный код, чтобы я мог протестировать до того, как сделать live. –

+0

@MarkHart Если вы подтвердите, что ваш код работает на активном сервере, вы можете оставить это ok и продолжить кодирование других функций, которые работают на localhost. В моем случае я создаю, анализирую, делаю некоторые исследования для правильного синтаксиса кода, прежде чем тестировать его на активном сервере, чтобы уменьшить пробную версию и ошибку на активном сервере. – LeViNcE