За последние 24 часа нас посетили 34230 программистов и 1693 робота. Сейчас ищут 667 программистов ...

Создание формы на сайте. Где ошибка в обработчике формы?

Тема в разделе "PHP для новичков", создана пользователем Pavl, 7 апр 2018.

  1. Pavl

    Pavl Новичок

    С нами с:
    3 ноя 2017
    Сообщения:
    44
    Симпатии:
    0
    Добрый день!
    Понимаю, что ошибка, где-то рядом, но не понимаю - где именно?
    Создал форму. Затем обработчик формы. И, вроде как, обработчик работает, но при ответе обработчика, после строки со словами: Спасибо за отправку вашего сообщения!; "Нажмите, чтобы вернуться на главную страницу", появляется текст с ненужными символами.

    HTML:
    1.  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    4. <title>Обратная связь</title>
    5. </head>
    6.  
    7. <?php
    8. if(isset($_POST['name'])) {$name = $_POST['name'];}
    9. if(isset($_POST['email'])) {$email = $_POST['email'];}
    10. if(isset($_POST['mess'])) {$mess = $_POST['mess'];}
    11.  
    12. $to = "mymail@inbox.ru";
    13. $headers = "Content-type: text/plain; charset=windows-1251";
    14. $subject = "Сообщение с вашего сайта";
    15. $message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";
    16. $send = mail($to, $subject, $message, $headers);
    17. if ($send == 'true')
    18. {
    19. echo <b>Спасибо за отправку вашего сообщения!</b>;
    20. "<a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу";
    21. }
    22. else
    23. {
    24. echo <b>"Ошибка. Сообщение не отправлено!"</b>;
    25. }
    26. ?>
    27. </body>
    28. </html>
    29.  
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Это новый синтаксис phpx?)
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    тут лучше
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    php-babel установить забыл
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Это тебя Алёша Попович научил писать PHP в теге body и юзать Windows-1251 ?
    --- Добавлено ---
    Возьми строки в кавычки вместе с тегами.
    --- Добавлено ---
    а вот тут php путается в твоих кавычках. Внутренние нужно или экранировать или заменить на одинарные.
    ну или внешние заменить на одинарные. Короче, один из вариантов:
    PHP:
    1. // 1
    2. "<a href=\"index.html\">Нажмите,</a> чтобы вернуться на главную страницу";
    3.  
    4. //2
    5. "<a href='index.html'>Нажмите,</a> чтобы вернуться на главную страницу";
    6.  
    7. //3
    8. '<a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу';
     
  6. Pavl

    Pavl Новичок

    С нами с:
    3 ноя 2017
    Сообщения:
    44
    Симпатии:
    0
    Попробовал все три варианта - результат, примерно, тот же самый...

    Научила вот эта статья https://biznes-prost.ru/sozdaem-formu-obratnoj-svyazi-na-sajte.html :)
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. echo ('<b>Спасибо за отправку вашего сообщения!</b><a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу');
     
  8. Pavl

    Pavl Новичок

    С нами с:
    3 ноя 2017
    Сообщения:
    44
    Симпатии:
    0
    Нет, снова, примерно, то же самое получается.
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    else тоже исправь. Что вообще за не нужные символы?
    PHP:
    1. echo ('<b>Ошибка. Сообщение не отправлено!</b>');
     
  10. Pavl

    Pavl Новичок

    С нами с:
    3 ноя 2017
    Сообщения:
    44
    Симпатии:
    0
    Ненужные символы:
    " ; } else { echo ?>

    Наверное, как мне кажется, посетителю сайта, при отправке данных формы, не интересно, будет видеть эти символы.

    То есть, должно появляться либо: Спасибо за отправку вашего сообщения!Нажмите, чтобы вернуться на главную страницу.

    Либо: Ошибка. Сообщение не отправлено!

    И без ненужных символов.
    --- Добавлено ---
    Неа, всё то же самое, к сожалению.
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Как все сложно. Копируй все так как написано выше.
    PHP:
    1. if ($send == 'true') {
    2.     echo('<b>Спасибо за отправку вашего сообщения!</b><a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу');
    3. } else {
    4.     echo('<b>Ошибка. Сообщение не отправлено!</b>');
    5. }
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    зачем у echo скобочки ?
     
  13. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    dd() приучил:(
     
  14. Pavl

    Pavl Новичок

    С нами с:
    3 ноя 2017
    Сообщения:
    44
    Симпатии:
    0
    Интересное развитие событий - у других этот код работает (и без ненужных символов), а у меня нет и я не знаю - почему?
     
  15. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
  16. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    потому, что PHP не работает.
    либо ты открываешь файл напрямую не через web сервер,
    либо на web сервере не настроен прогон через php интерпретатор,
    либо расширение файла обработчика .html, а должно быть .php