За последние 24 часа нас посетили 22138 программистов и 990 роботов. Сейчас ищут 968 программистов ...

Перенаправления после формы

Тема в разделе "PHP для новичков", создана пользователем s1dix, 25 сен 2017.

  1. s1dix

    s1dix Новичок

    С нами с:
    18 сен 2017
    Сообщения:
    6
    Симпатии:
    0
    Добрый день, есть форма как сделать , что -бы после нажатия отправить перенаправляла на другую страницу ?Если можно пример

    Код (Text):
    1. <form method="POST" action="">
    2.         <input name="FAQ1" type="text" placeholder="Ф.И.О" required/><br />
    3.         <input name="adress1" type="text" placeholder="Ведите ваш адресс в формате Индекс,Город,улица дом" required/><br />
    4.         <input name="telephone1" id="phone" type="text" placeholder="Ваш телефон" required/><br />
    5.         <input name="mail1" type="email" placeholder="Ваш @mail" required/><br />
    6.         <input  type="submit" name="add" value="Отправить"  />
    7.      
    8.  
    9.     </form>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Если вы про то, чтоб форму отправить - то указывайте в action
    PHP:
    1. <form method="POST" action="script2.php">
    если о перенаправлении в скрипте после обработки формы - то
    PHP:
    1. header("Location: script3.php");
    2. exit();
     
    acso нравится это.
  3. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Код (Javascript):
    1. function goURL(url, blank) {
    2.   if (blank) {
    3.     window.open(url, '_blank');
    4.   } else {
    5.     document.location.href = url;
    6.   }
    7. }
    blank = true - открывается новая вкладка, false - идем на нужный адрес. ADSoft, каким образом в js вставить Ваш код с перенаправлением на php?
     
  4. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Окуратно со всеми скриптами.
    В варианте @ADSoft, хотя бы все сработает и это будет самым легким без js.
    Если с js то сначало надо запретить форме посылать данные.
    JS их обрабатывать и слать обработчику, и от результата вывести ошибку или в случае успеха переадресовать.
     
  5. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Так ADSoft, судя по всему, дал верный ответ на вопрос, указав в action урл страницы, которая откроется и получит содержимое формы.
    Я "приколупался" к следующему коду с header на php, который, в данном случае, ни в какие ворота сюда не лезет - в таких случаях нужно переадресовывать при помощи js, а не смешивать js и php. Да, само собой, пост или гет нужно запретить и вешать обработку на отдельную функцию с аяксом (или без).
    ПыСы: что-то этот аякс меня преследует. Что ни комментарий, то вечно его вспоминаю)
     
  6. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    а чем header не нравится ?
    вполне можно использовать в конце работы обработчика.
    (Его нельзя использовать если какой то ответ обработчик возвращает, то есть выводит, но это тоже решаемое)
     
  7. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Пните меня ногой, но если в исходнике встретится <?php header("Location: script3.php"); ?> , то пользователь даже не увидит страницу с формой, а сразу попадет на script3.php или получит ошибку, т.к. "заголовки уже были отправлены". Можно пример?
     
  8. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Так смотри есть форма назовем index.html
    и в форме пишем
    HTML:
    1. <form method="POST" action="script2.php">
    человек нажимаем на кнопку. и post запрос уходит в script2.php
    там уже
    PHP:
    1. <?php
    2. //получаем пост данные
    3.  
    4. /*
    5. *Что то с ними делаем
    6. *ку да то добавляем
    7. *получаем результат в переменную
    8. */
    9.  
    10. if($result){
    11. header("Location: ok.html");
    12. }else{
    13. header("Location: error.php");
    14. }
    15. exit();
    --- Добавлено ---
    Это грубый пример, конечно. но все же
     
    s1dix нравится это.
  9. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Тю блин, дошло наконец-то. Не, я так не играю)
    Вот, накидал на коленке, насчет чего я возмущался (http://acso.com.ua/chk_header.php):
    Код (Text):
    1. <html><head><title>Header test</title></head><body>
    2. <?php if (isset($_GET['page2'])) echo "second page"; else echo "first page"; ?>
    3. <script>
    4. function check() {
    5.   if (false) {
    6.     <?php header("Location: chk_header.php?page2=go"); ?>
    7.   }
    8. }
    9. </script>
    10. </body></html>
    Естественно, получим в дыню )) (Ctrl-U)
     
    xaker01 нравится это.
  10. xaker01

    xaker01 Активный пользователь

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Ну я js редко пытаюсь использовать, и только там где он нужен.
    Я привел пример как полностью без js обойтись)
    В чатах так нельзя конечно(еще как можно, но не 2000 сейчас)
     
    acso нравится это.
  11. s1dix

    s1dix Новичок

    С нами с:
    18 сен 2017
    Сообщения:
    6
    Симпатии:
    0
    Спасибо, за Хорошее объяснение очень помогло
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Это какая-то дикая мешанина из php, html и js.
     
  13. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Прочтите предыдущие посты, а не только этот. Смысл как раз был в том, что так делать нельзя, и я привел пример, что будет, если все же так сделать)
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Ну так влепить header посреди JavaScript тут никто и не советовал
     
  15. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Ну так я и написал, что не догнал мысль, а подумал, что предлагается ЭТО. Перенаправление средствами php после обработки формы не использую, пост с перезагрузкой страницы также - вместо этого предпочитаю аякс с обработкой ответа при помощи js. Поэтому сразу и подумал, что предлагается безумное решение с header посреди js.