|
|
|
| Здравствуйте,
Вот пишу книгу гостевую и наткнулся на такую проблемку когда обновляю страницу браузера так последнее сообщение которое записанно в базе сообщзений(Файл) само дублируеться.
Как избежать этого? ПО моему так должна быть функция которая очищала бы кеш память браузера а вот найти не смог, может нет такой!? | |
|
|
|
|
|
|
|
для: TheCreator
(01.08.2006 в 13:57)
| | так и должно быть.
после добавления сообщения в базу пишется Header("Location: куданадоперейти"); | |
|
|
|
|
|
|
|
для: RV
(01.08.2006 в 14:05)
| | Спасибо! Но всёже должна быть функция очистки хеша браузера!? | |
|
|
|
|
|
|
|
для: TheCreator
(01.08.2006 в 16:34)
| | хеша у броузера нет
а кеш вам тут не поможет | |
|
|
|
|
|
|
|
для: RV
(01.08.2006 в 16:46)
| | Чтож спасибо! А не могли бы вы сказать из-за чего он дублирует последнее сообщение? Ведь он берёт его из кеша браузера поскольку браузер кеширует данные.
А вот если выйти из браузера и зайти заново то больше не дублирует соответственно нужно очистить кеш. Может я не прав. | |
|
|
|
|
|
|
|
для: TheCreator
(01.08.2006 в 17:36)
| | вы не правы.
можете заставлять пользователя перезагружать броузер после отправки сообщения.
это так у всех. после добавления сообщения надо перенаправлять пользователя например посылкой хедера. все так и борются. более подробно может объяснить например гугль | |
|
|
|
|
|
|
|
для: RV
(01.08.2006 в 18:14)
| | Большое спасибо за помощь!!!
Жаль только, что не предосмотрели разработчики PHP такой ситуации это облегчило дело.
Кто знает может и исправлят этот изьян, в PHP6. | |
|
|
|
|
|
|
|
для: TheCreator
(01.08.2006 в 18:40)
| | открою секрет. php тут никаким боком не причем, потому как он работает на сервере и не генерирует никаких окон у клиента | |
|
|
|
|
|
|
|
для: TheCreator
(01.08.2006 в 13:57)
| | Можно просто смотреть если в базе нет такого текста то добавлять, если есть то недобавлять.
И лишних рефрэшей не будет... | |
|
|
|
|
|
|
|
для: Vit-j
(01.08.2006 в 16:08)
| | так никто не делает. тем более в гостевой книги могут быть одинаковые ответы | |
|
|
|
|
|
|
|
для: RV
(01.08.2006 в 16:09)
| | Абслютно одинаковые? Символ в символ? Ну допустим есть, но другой пользователь... Хотя я согласен... | |
|
|
|
|
|
|
|
для: Vit-j
(01.08.2006 в 16:11)
| | абсолютно одинаковые. символ в символ. называется копипаст. и примеров масса.
темболее сверять текст слишком дорого в плане производительности. тем более если текст длинный | |
|
|
|
|
|
|
|
для: RV
(01.08.2006 в 16:21)
| | Ну редирект редиректом, я этим и боролся. Но это съедает лишний трафик а на модеме время. Бывают же форумы в которых после отправки сообщения ничего не рефрэшится... Может всё таки есть способ очистить хэш:) или какой-то обходной путь??? А может массив POST как-то обнулить можно... | |
|
|
|
|
|
|
|
для: Vit-j
(02.08.2006 в 00:44)
| | Все в кучу свалили... и хэш и кэш и пост... Первые два тут вообще не в кассу, последний обнулить можно, но при обновлении страницы он снова заполнится. А с чего вы взяли что на других форумах страница не рафрешится? Вы исходные коды смотрели? тогда покажите и нам как у них решена эта проблема... | |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 01:09)
| | подовляйте окно с помощью js | |
|
|
|
|
|
|
|
для: RV
(02.08.2006 в 02:39)
| | По поводу хэша я пошутил для непонятливых. А как это всё сделать я придумал. Есть к примеру две странички сам форум (forum.php) и страничка для отправки сообщений(forum.php?action=send), на страничке с форумом после отправки сообщения скидываем что нибудь в сессию, например $_SESSION['foum'] = "send"; а на страничке с которой присылаем сообщение мы эту пременную в сесии обнуляем. Ставим запрет на сохранение на страничке с форумом если в сесии есть пременная, и всё работает! | |
|
|
|