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 :: При обновлении страницы скрипт срабатывает снова..
Покинул форум
Сообщений всего: 96
Дата рег-ции: Май 2010 Откуда: Россия, Калуга
Помог: 2 раз(а)
Доброе время суток...
Проблемка заключается в том что скрипт повторяет свое действие после обновления страницы... форма сама передает данные и скрипт как положено его обрабатывает.. Ставить переменную на кнопку смысла нет, она тож передается.. файл обработчик подкружается через
----- Не откладывай работу на завтра, от которой можно вообще отказаться
duk
Отправлено: 05 Августа, 2010 - 09:51:30
Частый гость
Покинул форум
Сообщений всего: 208
Дата рег-ции: Февр. 2010 Откуда: Москва
Помог: 3 раз(а)
пока не очень понятно, что и как там взаимодействует и как форма сама отправляет данные
ADIOS
Отправлено: 05 Августа, 2010 - 10:15:12
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Май 2010 Откуда: Россия, Калуга
Помог: 2 раз(а)
duk пишет:
пока не очень понятно, что и как там взаимодействует и как форма сама отправляет данные
... Скрипт обработал форму.. Выдал отчет об успешной работе.. но после нажатия F5 браузер спрашивает оправить данные заново или нет (что то в это роде), жмешь да и скрипт выполняеться снова... КАК ЭТОГО ИЗБЕЖАТЬ?
... Заранее спасибо...
----- Не откладывай работу на завтра, от которой можно вообще отказаться
alexspb
Отправлено: 05 Августа, 2010 - 10:34:00
Посетитель
Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010
Помог: 0 раз(а)
ADIOS пишет:
но после нажатия F5 браузер спрашивает оправить данные заново или нет
Сделать редирект (header('Location: ...')) на другую страницу или на ту же, но добавить в урле ?ok=true (любую переменную)
----- Хостинг - неограниченно доменов на одну папку Ajax - отличное введение
JustUserR
Отправлено: 05 Августа, 2010 - 14:34:10
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
ADIOS пишет:
Скрипт обработал форму.. Выдал отчет об успешной работе.. но после нажатия F5 браузер спрашивает оправить данные заново или нет (что то в это роде), жмешь да и скрипт выполняеться снова... КАК ЭТОГО ИЗБЕЖАТЬ
Если необходимость в защите от повторной отпраки данных формы обарабатывающему PHP-скрипту при обновлении страницы - нужна в основном для простого предотвращения повторного выполнения каких-либо дейтсвий и удобства пользователя на тот случай если он случайно нажмет F5 - то можно использовать внешнее перенаправление на тот URL-адрес при запросе которого не выполняются никакие активные действия Обратите внимание что перенаправление должно быть именно внешним и реализовываться либо генерацией полного URL-адреса в пересылаемом Header-е Location - либо происходить на клиентской стороне с использованием JS-скрипта - потому что если перенаправление будет внутренним то Apache просто запустит соответствующий CGI-скрипт и выведет его результат работы с том же HTTP-ответе
Если же вам нужна реальная защита от повторного запроса PHP-скрипта то есть чтобы один и тот же пользователь не мог выполнить его несколько раз - даже в случае если этот пользователь не будет следовать перенаправлениям например с помощью прямого запроса по telnet - то самым эффективным способом будет обязательная авторизация благодаря который информацию по каждому пользователю и его дейтсвиях можно хранить в БД и накладывать соответствующие ограничения Как вариант можно использовтаь и проверку IP-адреса вместе с максимально полной информацией о браузере/системе/разрешении экрана и тд - это может позволить идентифицировать пользователя с некоторой приемлемой точностью
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
ADIOS
Отправлено: 05 Августа, 2010 - 21:13:59
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Май 2010 Откуда: Россия, Калуга
Помог: 2 раз(а)
JustUserR пишет:
ADIOS пишет:
Скрипт обработал форму.. Выдал отчет об успешной работе.. но после нажатия F5 браузер спрашивает оправить данные заново или нет (что то в это роде), жмешь да и скрипт выполняеться снова... КАК ЭТОГО ИЗБЕЖАТЬ
либо происходить на клиентской стороне с использованием JS-скрипта
----- Не откладывай работу на завтра, от которой можно вообще отказаться
JustUserR
Отправлено: 06 Августа, 2010 - 00:45:36
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
ADIOS пишет:
Спасибо выручили...
Пожалуйста! Кроме того тот вариант JS-функции который вы используете является наиболее универсальным - и именно его модификацию следует использовать даже в том случае когда требуется мгновенное перенаправление - поскольку если DOM-модели и система событий страницы не успеет загрузиться в необходимой мере то это может привести к неправильной работе
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
laska470
Отправлено: 11 Апреля, 2011 - 13:46:43
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.