![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Turanda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
Есть такой код:
Суть кода, что то ввожу, жму кнопку, он мне выводит то что я ввел. Проблема заключается в том что если после одного запуска скрипта через кнопку жму в браузере обновить, то он опять выводит то что я вводил в прошлый раз, получается как будто я при обновлении опять нажал кнопку со старым введенным значением. Вот как при обновлении обнулить значение $_POST['Name']. P.S. Почитал что нужно использовать что то типо header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?ok'); но почему то это не работает. Если кто знаком, на моем примере можете показать что нужно добавить. Заранее спасибо! |
|||
|
||||
| fesor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 16.7.2009 Где: Минск Репутация: 4 Всего: 4 |
Эта проблема относиться исключительно к браузерам. К PHP оно ничего неимеет общего. Браузер тупо перепосылает заголовки (вместе с POST запросом).
|
|||
|
||||
| Turanda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
Ну может быть и к браузерам, но код пишем на РНР и с этим же как то надо бороться. |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
На формирование текущей страницы повлияли данные, которые были отправлены POST запросом. Если ты просишь броузер обновить страницу, то он постарается показать тебе ее как можно точнее о чем и предупредит просьбой о повторной отправке заголовков. Все логично и работает так, как должно. И PHP здесь не при чем.
Но средствами php можно проследить сделал ли пользователь сабмит формы или это повторные заголовки.
Это сообщение отредактировал(а) icewind - 23.7.2009, 12:17 -------------------- ![]() |
|||
|
||||
| Turanda |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
Спасибо! Все работает! Но единственное что я думаю а если рандом выдаст подряд одно и тоже, то получается что это уязвимость. Я вообще думаю ведь это проблема можно сказать фундаментальная. Любой сайт на РНР в инете с этим борется. Просто наверняка есть какие то стандартные приемы в данной ситуации. |
||||
|
|||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: 1 Всего: 3 |
используй header("Location: ".$url); exit;
и все будет работать замечательно -------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
Turanda, подобная организация форм в реальных проектах встречается крайне редко, по этому такой проблемы нет
Если пугает такая вероятность то можно rand заменить на microtime -------------------- ![]() |
|||
|
||||
| Turanda |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.7.2009 Репутация: нет Всего: нет |
не могли бы написать куда надо вставить header("Location: ".$url); exit; в этом коде:
что бы нормально работало. Это сообщение отредактировал(а) Turanda - 24.7.2009, 11:58 |
||||
|
|||||
| NetJunky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 11.5.2008 Где: Tallinn Репутация: 0 Всего: 0 |
Только $url не забуть соответствующий задать. -------------------- Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139 Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
перенаправление не произойдет. echo ... отправит свои заголовки. если используешь перенаправление через заголовки, вывода быть не должно вообще. необходимые текст выведешь на странице, на которую перенаправляешь. чтоб передать этой странице полученные данные, их можно сохранить(в порядке убывания потенциальной применимости в твоем случае): а) сессии б) базе данных в) файле |
|||
|
||||
| NetJunky |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 11.5.2008 Где: Tallinn Репутация: 0 Всего: 0 |
Что-то да, снова я напортачил. Ну помойму самое то это использовать сессии.
-------------------- Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139 Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |