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
Форумы портала PHP.SU :: Версия для печати :: Обновление страницы
Форумы портала PHP.SU » » HTTP и PHP » Обновление страницы

Страниц (3): [1] 2 3 »
 

1. Евгений 777 - 08 Июля, 2011 - 13:14:58 - перейти к сообщению
Ребята, привет всем. Если пишу не туда, извиняюсь. В общем проблемка у меня возникла. На сайте сделал форму, после её отправки (если все поля заполнены и запрос к базе успешный), то выводится сообщение и через 5 секунд страница перезагружается. Но что удивительно, в IE и Google Chrome она обновляется без проблем, то в Firefox 5.0.0 она обновляется тоже, но если нажать принудительно (уже после обновления страницы) кнопку "обновить" в браузере, то Firefox выдаёт окно "отправить заново". Что уже только не делал, не получается его убрать. Страница обновляется через польз. ф-ю
PHP:
скопировать код в буфер обмена
  1. function refresh($time, $url=NULL){
  2. if(empty($url)){$url="{$_SERVER['REQUEST_URI']}";}
  3. die("<meta http-equiv='refresh' content='".$time."; url=".$url."'>");

Вызываю её так: refresh(5, ''); Во всех браузерах работает, в Firefox вот такая вот проблема. Сможет кто помочь? Конечно можно использовать и JS, но ведь не у всех пользователей он включен и тогда может случиться...беда. Может эта версия Firefox такая глючная? Никто не сталкивался?
2. LIME - 08 Июля, 2011 - 13:20:53 - перейти к сообщению
Евгений 777 я так понимаю надо вместо рефреш использовать локэйшн
рефреш повторяет последний запрос со всеми даными гет и пост
3. Евгений 777 - 08 Июля, 2011 - 16:47:41 - перейти к сообщению
LIME пишет:
Евгений 777 я так понимаю надо вместо рефреш использовать локэйшн
рефреш повторяет последний запрос со всеми даными гет и пост

А код локейшн не подкинете? Хотя я по моему его пробовал.
4. EuGen - 08 Июля, 2011 - 16:51:40 - перейти к сообщению
Используйте например, такую вещь:
PHP:
скопировать код в буфер обмена
  1. function refresh($url=NULL)
  2. {
  3.    if(empty($url))
  4.    {
  5.       $url=$_SERVER['REQUEST_URI'];
  6.    };
  7.    header("Location: ".$url);
  8.    exit();
  9. }
5. LIME - 08 Июля, 2011 - 17:03:59 - перейти к сообщению
как раз надо указать в url $_SERVER['HTTP_HOST'] или прописать жестко
потому что в $_SERVER['REQUEST_URI'] тоже гет вставлен
6. EuGen - 08 Июля, 2011 - 17:05:42 - перейти к сообщению
Вопрос постановки задачи. Подозреваю, автору как раз нужны только параметры GET
7. Евгений 777 - 08 Июля, 2011 - 17:09:05 - перейти к сообщению
Спасибо за код, но он у меня не работает. Пишет что есть вывод. Сайт делаю по системе MVC впервые, видно где то что то не так сделал, раз вывод уже есть. Видно поэтому я и не стал раньше такой код делать а стал прикручивать рефреш. Других вариантов больше как я понимаю нет? И почему тогда остальные браузеры правильно воспринимают этот рефреш?
Отправляется POST запрос (форма), а страница должна просто обновиться.
8. LIME - 08 Июля, 2011 - 17:11:33 - перейти к сообщению
EuGen а какой смысл ? ещераз на туже страницу с темиже параметрами?
вот потому браузеры и переспрашивают отправить теже параметры или как?
обьясните если я непонял
(Добавление)
Евгений 777 а Bom убрали?
впринципе локейшн можно также отправить мета полем как вы рефреш слали
9. EuGen - 08 Июля, 2011 - 17:13:22 - перейти к сообщению
Значит постройте код так, чтобы после вывода не делать редирект.
Если цель сделать что-то с использованием MVC - почитайте Урок №19 на этом форуме - там детально все описано.

Тегом <meta> делать некорректно (так как он должен располагаться строго внутри <head>...</head>, чего при таком подходе гарантировать нельзя)
10. Евгений 777 - 08 Июля, 2011 - 17:14:43 - перейти к сообщению
LIME пишет:
EuGen а какой смысл ? ещераз на туже страницу с темиже параметрами?
вот потому браузеры и переспрашивают отправить теже параметры или как?
обьясните если я непонял

Я делаю форму для добавления коммента к статье. Человек открывает статью, внизу которой комменты, а ещё ниже форма, чтобы он мог оставить свой коммент. Он её заполняет, отправляет, данные пишутся в базу и страница перезагружается и в комментах отображается уже и его коммент.
11. LIME - 08 Июля, 2011 - 17:15:30 - перейти к сообщению
LIME но ""реальные пацаны " используют хидер я слышал ))
потому что если сервер оправит такойже зпголовок как вы в мета прописали браузер ваш проигнорирует а хидер меняет серверный заголовок на ваш(но не все можно переопределить)
(Добавление)
Евгений 777 пишет:
Я делаю форму для добавления коммента к статье. Человек открывает статью, внизу которой комменты, а ещё ниже форма, чтобы он мог оставить свой коммент. Он её заполняет, отправляет, данные пишутся в базу и страница перезагружается и в комментах отображается уже и его коммент.

тогда код EuGenна должен работать
уберите все выводы до заголовка и еще раз (вдруг вы не знаете) уберите BOM
12. Евгений 777 - 08 Июля, 2011 - 17:21:19 - перейти к сообщению
Да покопался в коде, не должно быть никакого вывода до этого локэйшн. У меня шаблон (главный) грузится уже после отработки всех скриптов, в самом конце кода. А что за BOM, простите? Не понял
13. EuGen - 08 Июля, 2011 - 17:22:05 - перейти к сообщению
Евгений 777 пишет:
А что за BOM, простите?

http://forum.php.su/topic.php?fo...1&topic=3026
14. Евгений 777 - 08 Июля, 2011 - 17:28:15 - перейти к сообщению
Может я чего то не так понял, но у меня не utf-8, у меня windows-1251. Простите если что за глупые вопросы, просто действительно не пойму что это за символ BOM
15. EuGen - 08 Июля, 2011 - 17:29:53 - перейти к сообщению
Это не про Ваш случай, у однобайтовых кодировок вроде cp1251 этого нет.

В этом случае http://phpfaq[dot]ru/debug (скрипт должен Вам написать где именно стартовал вывод)

 

Powered by ExBB FM 1.0 RC1