неправильный путь

Discussion in 'PHP' started by yfet, 12 Oct 2011.

  1. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    Что может быть когда обработчик формы ввода на хосте стоит а по нажатию на кнопку - не удается найти файл? :confused:
     
  2. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Пути к обработчику в коде указаны верные?
    B .htaccess нет ли записи которая соответствует маской адресу обработчика. (например перенаправлять с [a-z).php на .html и т.д
     
  3. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    Путь проверил по 10 раз, все в порядке.
    .htaccess - тоже на месте, в нем ничего лишнего.
     
  4. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    фаил обработчика проверь хорошо..
    У меня было как-то что по каким-то причинам при ошибке он выдавал 404 not found
    Открой в разных браузерах.. У оперы было 404 а у мозилы белый экран.
    или код обработчика в студию =)
     
  5. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    В опере как раз и тестируется.
    код обработчика
    Code:
    <?php 
    
    $name=$_POST["name"];
    $family=$_POST["family"];
    $parent=$_POST["parent"];
    $date=$_POST["date"];
    $passport=$_POST["passport"];
    $emai=$_POST["emai"];
    $home=$_POST["home"];
    $mobile=$_POST["mobile"];
    $index=$_POST["index"];
    $adress=$_POST["adress"];
    $profa=$_POST["profa"];
    
    	$message = "$name\$family\$parent\$date\$passport\$email\$home\$mobile\$index\$adress\$profa"; 
    	$message = wordwrap($message, 70); 
    	mail('xxxxx@gmail.com', 'Новая регистрация', $message); 
    
    ?>
    
     
  6. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    1. И какой же файл не может найти функция mail()? Уверены, что дали правильный код?
    2. Зачем вы эскейпите знаки долларов в двойных кавычках?
     
  7. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    krypt3r, дело не в функции. Когда нажимается кнопка - отправить данные, вызывается по идее этот mail.php, но браузер выдает 404.
    Насчет кавычек, сейчас погуглю, скорей всего моя оплошность)
     
  8. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    В форме стоит action="mail.php"? Покажите форму
     
  9. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    Code:
    h2 class="subtitle"><span>Введите ваши данные</span></h2>
    <form method="POST" action="mail.php">
    <p>Введите Ваше имя :<br><input type="text" name="name" size="20">
    <br>Введите Вашу фамилию :<br><input type="text" name="family" size="20">
    <br>Введите Ваше отчество :<br><input type="text" name="parent" size="20">
    <br>Дата рождения (ДД/ММ/ГГГГ) :<br><input type="text" name="date" size="20">
    <br>Серия и номер паспорта :<br><input type="text" name="passport" size="20">
    <br>Ваш E-mail (будьте внимательны при заполнении) :<br><input type="text" name="email" size="20">
    <br>Телефон домашний (с кодом города) :<br><input type="text" name="home" size="20">
    <br>Телефон мобильный (пример +7 926 5551177) :<br><input type="text" name="mobile" size="20">
    <br>Индекс :<br><input type="text" name="index" size="20">
    <br>Адрес проживания (Улица. Дом.Корпус. Квартира) :<br><textarea rows="2" name="adress" cols="20"></textarea>
    <br>Профессия :<br><input type="text" name="profa" size="20"><br>
    <br><input type="submit" value="Отправить" name="B1">
    <input type="reset" value="Очистить форму" name="B2"></p></form>
    
     
  10. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    0. Точно ли mail.php лежит в том же каталоге, что и форма, его вызывающая?
    1. Попробуйте указать в action полный путь к скрипту относительно корня сайта
    Code:
    action="/mail.php"
    action="http://www.site.ru/mail.php"
    
    2. Правильный ли регистр имени файла?
    3. Проверьте права, должны быть 0644.
    4. Загляните в логи веб-сервера.
    5. Отснифайте запрос, куда на самом деле ломится форма.
     
  11. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    krypt3r :
    0. Лежит точно.
    1. Уже указывал, результат прежний.
    2. Регистр указал верно.
    3. Права стоят 644, тестил и с 777, результата нет.
    4. Посмотрел, ни одно запроса к этому файлу
    5. Отснифал. Как не странно, все заработало.
    На мыло пришло
    Следовательно скрипт словил только первое поле.

    Слегка исправил скрипт, заменил слеши запятыми, текст из полей не приходит.
     
    #11 yfet, 12 Oct 2011
    Last edited: 12 Oct 2011
  12. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Залей на хост.. Может там будет работать...
    Код нормальный вроде..
     
  13. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    залил. Не то в сообщении приходит
     
  14. zinnyr

    zinnyr New Member

    Joined:
    12 Oct 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    не то это что?код из другого файла,ошибку?
    Уточните
     
  15. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    вот что приходит на мыло.
    $name, $family, $parent, $date, $passport, $email, $home, $mobile,
    $index, $adress, $profa
     
  16. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    попробуй так:

    $message = "{$name}\{$family}\{$parent}\{$date}\{$passport}\{$email}\{$home} \{$mobile}\{$index}\{$adress}\{$profa}";
     
  17. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    -=Zhenek=-, последовал Вашему совету, впринципе заработало, но судя по полученному мейлу, можно сделать вывод что }\{ там не требуется :) дело я так понял было в кавычках "
     
  18. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    просто вот так работать не будет:

    '$name' а вот так будет '{$name}'
    В одинарных кавычках переменные не обрабатываются..
    В двойных обрабатываются
     
  19. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    PHP:
    $message implode ('\\', array ($name$family$parent$date$passport$email$home$mobile$index$adress$profa));
    // или
    $message "$name\\$family\\$parent\\$date\\$passport\\$email\\$home\\$mobile\\$index\\$adress\\$profa";