Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: header ("Location:

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
ytrewq123
Отправлено: 19 Октября, 2015 - 21:24:53
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Здравствуйте!
У меня вот такой вопрос. Ну ни как не могу понять.
Вообще то главное что мне надо на данный момент. Просто избавится от выплывающего окна, после отсылки инфо. Из формы. И потом нажав Ф5 это окно появляется.
Искал много, читал, смотрел, но ни как.
Понимаю что надо написать
header ("Location: " . $_SERVER["PHP_SELF"]);
Писал, тыкал везде. Ничего. Да Да Да знаю что вы уже думаете должно быть перед выводами. Приняв это во внимание и поняв что не найду место правильное. Воспользовался буферизацией.
НУ ни чего.
Значит вопрос в следующим. Как всё-таки это работает.
Вот маленький приемчик. Почему так?
Как ни странно полно echo перед но перенаправление происходит.

CODE (html):
скопировать код в буфер обмена
  1.  <!DOCTYPE html>
  2.  
  3. <html>
  4. <head>
  5.     <title>Page Title</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <form action="" method="post">
  11. <input type="text" name="po">
  12. <input type="submit">
  13. </form>
  14. <?php
  15. include('header_proba.php');
  16. echo $q;
  17. ?>
  18. </body>
  19. </html>




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. echo'CTO TO';
  5. $q=$_POST['po'];
  6. if(isset($q)){
  7. echo'CTO TO';
  8. header('Location: http://www.example.com/');}
  9. ?>
  10.  


А тут вроде всё в порядке но почему не видно то что ввели в поле.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3.  
  4. <html>
  5. <head>
  6.     <title>Page Title</title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <form action="" method="post">
  12. <input type="text" name="po">
  13. <input type="submit">
  14. </form>
  15. <?php
  16. include('header_proba.php');
  17. echo $q;
  18. ?>
  19. </body>
  20. </html>
  21.  



PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.  
  5. $q=$_POST['po'];
  6. if(isset($q)){
  7. header ("Location: " . $_SERVER["PHP_SELF"]);
  8. }
  9. ?>
  10.  



Подскажите пожалуйста как надо делать правильно.
 
 Top
Tyoma5891
Отправлено: 19 Октября, 2015 - 21:36:56
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




ничего не понятно, Вы хоть сами понимаете что делаете? и что хотите получить в итоге? если да то изложите более четко и понятно
 
 Top
Строитель Модератор
Отправлено: 20 Октября, 2015 - 00:19:56
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




ytrewq123, если вам надо передавать какие-то параметры с одной страницы на другую - записывайте эти данные в $_SESSION[], и тогда при вызове ф-ции header() эти данные будут доступны при обращении к этому суперглобальному массиву.
 
 Top
ytrewq123
Отправлено: 20 Октября, 2015 - 05:33:46
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Спасибо всем.
Но нет у меня другая проблема.
Что меня больше всего выбешивает с чем я борюсь. Это когда отослали форму с инфо. И нажимаете F5 появляется окно следующего содержания.
«Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторит любое ранее произведённое действие (например, запрос на поиск или онлайн-покупка).»
И если жать эту Ф5 всё время будет отправляется та же информация.
Так вот я перерыл много и усердно и нашёл что надо после нажатия кнопки вот этим
header ("Location: " . $_SERVER["PHP_SELF"]);
делать перезапрос методом ГЕТ.
Но у меня ни как не получается.
Ни простою Ни с буферизацией.
Если кто действительно знает как это делать, подскажите пожалуйста.
 
 Top
andrewkard
Отправлено: 20 Октября, 2015 - 10:23:18
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




ytrewq123 пишет:
Но у меня ни как не получается.

Странно, вот рабочий вариант:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST['po'])){
  3.     //do something
  4.     header ("Location: " . $_SERVER["SCRIPT_NAME"]);
  5. }
  6. ?>
  7. <!DOCTYPE html>
  8. <html>
  9.     <head>
  10.         <title>Page Title</title>
  11.     </head>
  12. <body>
  13.     <form action="test.php" method="post">
  14.         <input type="text" name="po">
  15.         <input type="submit">
  16.     </form>
  17. </body>
  18. </html>
  19.  
 
 Top
ytrewq123
Отправлено: 20 Октября, 2015 - 16:41:04
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Извините конечно меня за глупость, а куда мне вставить ECHO, как мне увидеть, значение что написал человек в поле.
Простите конечно. Но…
 
 Top
andrewkard
Отправлено: 20 Октября, 2015 - 17:31:00
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




ytrewq123
Передайте GET параметром или запишите в сессию, и оттуда возьмете.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['po'])){
  4.     $po = $_POST['po'];
  5.     header ("Location: " . $_SERVER["SCRIPT_NAME"] . '?po=' . $po);
  6. }
  7. ?>
  8. <!DOCTYPE html>
  9. <html>
  10. <head>
  11.     <title>Page Title</title>
  12. </head>
  13. <body>
  14. <?PHP echo isset($_GET['po'])? $_GET['po']: ''?>
  15. <form action="test.php" method="post">
  16.     <input type="text" name="po">
  17.     <input type="submit">
  18. </form>
  19. </body>
  20. </html>
  21.  
 
 Top
ytrewq123
Отправлено: 20 Октября, 2015 - 17:54:45
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Простите меня, я наверное очень глупый. Я просто скопировал ваш код. И попробовал что получается. Да отправляемая информация есть. Но извините при нажатии Ф5, опять появляется это злосчастное сообщение.
Так что, что-то не так. И разве это не решается, просто вставкой header ("Location: именно в нужное место. Без лишнего кода, а тем более сессии. Как-то так.
 
 Top
andrewkard
Отправлено: 20 Октября, 2015 - 18:04:22
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




ytrewq123 пишет:
опять появляется это злосчастное сообщение

Это какое? Вот это: «Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторит любое ранее произведённое действие (например, запрос на поиск или онлайн-покупка).»
Когда мы нажимаем на кнопку Отправить, форма отправляется на этот же скрипт, который добавляет get параметр и перенаправляет на себя же с этим get параметром.
Обновление страницы (F5), после этого, форму не отправляет.
 
 Top
DelphinPRO
Отправлено: 20 Октября, 2015 - 18:13:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




--------------------пффффффффффф

(Отредактировано автором: 20 Октября, 2015 - 18:43:06)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Panoptik
Отправлено: 20 Октября, 2015 - 18:44:52
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




как убрать пост-хвост пример кода


PHP:
скопировать код в буфер обмена
  1. if($_POST) {
  2.     // делаем что-то с данными полученными из формы, например сохраняем в базу
  3.  
  4.     // убираем хвост редиректом на любую страницу. можно на эту же
  5.     header('Location: test.php');
  6.     exit(0);
  7. } else {
  8.      // если нет поста то
  9.     // показываем форму для ввода данных
  10. }


-----
Just do it
 
 Top
ytrewq123
Отправлено: 20 Октября, 2015 - 19:02:03
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Простите andrewkardandrewkard. Простите, да Вы правы всё работает.
Блин. Ладно спасибо всем за информацию. Буду рыть, пытаться внедрить это в нужное место.
Спасибо.
Но по правде ну не как ни могу понять как работает этот header. Вот теперь бьюсь. Надо куку, но она также как этот header связана с заголовками. Ставлю, всё работает. Опускаю ниже под другой, абсолютно идентичный код. . Извините усё ушло. ААААААААААААААААААА!!!
Ладно всем спасибо.

(Отредактировано автором: 20 Октября, 2015 - 19:21:12)

 
 Top
DelphinPRO
Отправлено: 20 Октября, 2015 - 19:56:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ytrewq123 пишет:
Но по правде ну не как ни могу понять как работает этот header. Вот теперь бьюсь.


как работает интернет?
Он мне картинки показывает!
Под капотом ковырять???? Да на* надо!!!!


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
ytrewq123
Отправлено: 20 Октября, 2015 - 21:04:10
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Понимаю Ваш сарказм. Но поверти никогда не прошу помощи не перерыв, не перепробовав. Очень много. Просто, понимаете. Да я буду рыть дальше, не смотря ни на что ибо это всё мне надо. Но это займёт месяц, два, три куча советов от таких как я. А иной раз простая подсказка, действительно знающего (ни такого как я) может сократить время этих поисков. И потом можно обдумывать, придумывать и т.д и т.п. Но когда ты знаешь по какому пути идти, а не блуждать.
Извините за философию.
Спасибо Всем.
 
 Top
SAD
Отправлено: 20 Октября, 2015 - 21:34:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




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

как говорил учитель мой: правильно поставленная задача - это 50% решения.

так что задайте правильные вопросы и будете получать правильные ответы.

удачи

(Отредактировано автором: 20 Октября, 2015 - 21:36:28)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB