![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
Вот такая структура у меня. Задача в следующем: после того как новость добавлена сделать следущее(на выбор):
1. просто напросто запретить обновлять страницу(если нажать F5, то штоб текст выскакивал: новость добаления, второй раз добавить нельзя) 2. Чтобы через секунду-две страница сама по себе возращалась на страницу добавления новости. Ваши предложения что лучше и как сделать?)
Это сообщение отредактировал(а) Alexey007 - 1.4.2007, 15:24 |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
Alexey007, вообще-то традиционно в таких случаях после добавления просто делают редирект на форму:
Возможны варианты (редирект на промежуточную страницу с результатом действия и ссылкой "продолжить", редирект JavaScript-ом и т.д.), но вот это - классика и потому считается надежнее и универсальнее всего... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
а можно сделать с ЗАДЕРЖКОЙ 1-2 сек?
|
|||
|
||||
Alix36 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 6.11.2006 Репутация: 1 Всего: 3 |
sleepом не пробывал? или те где задержка нужна?
-------------------- Наши лица как дым, И никто не узнает как мы победим. (С)Пикник. |
|||
|
||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
Спасибо, Alix36.
Sleep поможет, если только сделать переадресацию. с header не поможет, т.к. тег мне ставить между body нужно |
|||
|
||||
cia |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: 4 Всего: 4 |
Выкинь в браузер код редиректа на JavaScript. Т.е. после обработки выводи что хочешь, но также добавь что-то вроде этого:
|
|||
|
||||
boombick |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 20.4.2005 Где: Moscow, Russia Репутация: 2 Всего: 9 |
Господа, ну что вы? Для реализации редиректа стредствами HTML есть специальный meta-тег
В примере редирект произойдет через одну секунду на адрес example.com Решение работает и с отключенным js, в отличие от способа cia -------------------- |
|||
|
||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
boombick, так мне не надо в мета тегах. я ж писал.
P.S. Вообщем задачу сам решил. Может поправить? Вот как:
|
|||
|
||||
Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Что-то я не совсем понял... а почему просто напросто нельзя использовать с примеру куки (или сессии, или базу)?
У меня такая же задача и я еёпросто делаю так после проверки всего там этакого после удачного добавления сообщения (новости) я создаю кук с необходимой жизнью
а дальше мне всё равно, перезагружалась страница или тыкали на "добавить", в начале стоит код
Это сообщение отредактировал(а) Gold Dragon - 25.4.2007, 08:11 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
Gold Dragon, ну пройдет данное время, человек нажмет перегрузить страницу. и опять добавится сообщение
![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Я что-то не понял, запретить вообще(!) повторное выполнение скрипта или что? И почему должно добавиться сообщение? После того как сообщение добавляется, то управление переходит на страницу результатов (ну или куда там ещё) и пусть хоть 10000 раз перезагружает, юзер увидит только результаты (только мне посещаемость увеличит
![]() ![]() Это я решил через куки сделать (а просто люблю я куки ![]() Кстати, меня очень бесить (а я думаю не только меня) когда используется
![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Alexey007 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.3.2007 Репутация: 1 Всего: 1 |
Да е-мае. Вот ВЕСЬ код:
У меня после добавления высвечивается сообщение: новость добавлена. если нажать F5 то новость опять(!) добавится, а мне этого не нужно.
|
|||
|
||||
cia |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: 4 Всего: 4 |
При нажатии F5 происходит повторное выполнение этого скрипта с теми же параметрами. Просто перед добавлением проверь нет ли уже записи с такими данными.
|
|||
|
||||
Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Вообще-то правельнее было бы разделить на код где добавляются данные и на код вывода результатов (я про это и говорил). Тогда такая проблема сразу пропадает.
А если смотреть по коду, то как вариант можно в самом конце скрипта уничножить переменную
и условие не будет выполняться при перезагрузки
правда я не знаю как она у тебя формируется... -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: 5 Всего: 13 |
на мой взгляд нужно сделать дополнительное поле (INT) в котором хранить CRC32() от склеивания всех текстовых данных одной строки,
сделать индекс по этому полю, и до добавления спрашивать есть ли совподения |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |