Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сообщение в гостевой книге дублируются
 
 автор: TheCreator   (01.08.2006 в 13:57)   письмо автору
 
 

Здравствуйте,
Вот пишу книгу гостевую и наткнулся на такую проблемку когда обновляю страницу браузера так последнее сообщение которое записанно в базе сообщзений(Файл) само дублируеться.
Как избежать этого? ПО моему так должна быть функция которая очищала бы кеш память браузера а вот найти не смог, может нет такой!?

   
 
 автор: RV   (01.08.2006 в 14:05)   письмо автору
 
   для: TheCreator   (01.08.2006 в 13:57)
 

так и должно быть.
после добавления сообщения в базу пишется Header("Location: куданадоперейти");

   
 
 автор: TheCreator   (01.08.2006 в 16:34)   письмо автору
 
   для: RV   (01.08.2006 в 14:05)
 

Спасибо! Но всёже должна быть функция очистки хеша браузера!?

   
 
 автор: RV   (01.08.2006 в 16:46)   письмо автору
 
   для: TheCreator   (01.08.2006 в 16:34)
 

хеша у броузера нет
а кеш вам тут не поможет

   
 
 автор: TheCreator   (01.08.2006 в 17:36)   письмо автору
 
   для: RV   (01.08.2006 в 16:46)
 

Чтож спасибо! А не могли бы вы сказать из-за чего он дублирует последнее сообщение? Ведь он берёт его из кеша браузера поскольку браузер кеширует данные.
А вот если выйти из браузера и зайти заново то больше не дублирует соответственно нужно очистить кеш. Может я не прав.

   
 
 автор: RV   (01.08.2006 в 18:14)   письмо автору
 
   для: TheCreator   (01.08.2006 в 17:36)
 

вы не правы.
можете заставлять пользователя перезагружать броузер после отправки сообщения.
это так у всех. после добавления сообщения надо перенаправлять пользователя например посылкой хедера. все так и борются. более подробно может объяснить например гугль

   
 
 автор: TheCreator   (01.08.2006 в 18:40)   письмо автору
 
   для: RV   (01.08.2006 в 18:14)
 

Большое спасибо за помощь!!!
Жаль только, что не предосмотрели разработчики PHP такой ситуации это облегчило дело.
Кто знает может и исправлят этот изьян, в PHP6.

   
 
 автор: RV   (01.08.2006 в 19:06)   письмо автору
 
   для: TheCreator   (01.08.2006 в 18:40)
 

открою секрет. php тут никаким боком не причем, потому как он работает на сервере и не генерирует никаких окон у клиента

   
 
 автор: Vit-j   (01.08.2006 в 16:08)   письмо автору
 
   для: TheCreator   (01.08.2006 в 13:57)
 

Можно просто смотреть если в базе нет такого текста то добавлять, если есть то недобавлять.

И лишних рефрэшей не будет...

   
 
 автор: RV   (01.08.2006 в 16:09)   письмо автору
 
   для: Vit-j   (01.08.2006 в 16:08)
 

так никто не делает. тем более в гостевой книги могут быть одинаковые ответы

   
 
 автор: Vit-j   (01.08.2006 в 16:11)   письмо автору
 
   для: RV   (01.08.2006 в 16:09)
 

Абслютно одинаковые? Символ в символ? Ну допустим есть, но другой пользователь... Хотя я согласен...

   
 
 автор: RV   (01.08.2006 в 16:21)   письмо автору
 
   для: Vit-j   (01.08.2006 в 16:11)
 

абсолютно одинаковые. символ в символ. называется копипаст. и примеров масса.
темболее сверять текст слишком дорого в плане производительности. тем более если текст длинный

   
 
 автор: Vit-j   (02.08.2006 в 00:44)   письмо автору
 
   для: RV   (01.08.2006 в 16:21)
 

Ну редирект редиректом, я этим и боролся. Но это съедает лишний трафик а на модеме время. Бывают же форумы в которых после отправки сообщения ничего не рефрэшится... Может всё таки есть способ очистить хэш:) или какой-то обходной путь??? А может массив POST как-то обнулить можно...

   
 
 автор: Loki   (02.08.2006 в 01:09)   письмо автору
 
   для: Vit-j   (02.08.2006 в 00:44)
 

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

   
 
 автор: RV   (02.08.2006 в 02:39)   письмо автору
 
   для: Loki   (02.08.2006 в 01:09)
 

подовляйте окно с помощью js

   
 
 автор: Vit-j   (02.08.2006 в 19:15)   письмо автору
 
   для: RV   (02.08.2006 в 02:39)
 

По поводу хэша я пошутил для непонятливых. А как это всё сделать я придумал. Есть к примеру две странички сам форум (forum.php) и страничка для отправки сообщений(forum.php?action=send), на страничке с форумом после отправки сообщения скидываем что нибудь в сессию, например $_SESSION['foum'] = "send"; а на страничке с которой присылаем сообщение мы эту пременную в сесии обнуляем. Ставим запрет на сохранение на страничке с форумом если в сесии есть пременная, и всё работает!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования