Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sleep перед редиректом 
:(
    Опции темы
sugee
Дата 3.4.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Избитая фишка: после определенного действия юзера, появляется сообщение типа "Сейчас вы будете перемещены на страницу с результатами. Если вы не хотите ждать щелкните здесь".
Это предупреждение должно повисеть некоторое время, перед тем как произойдет обещаный редирект.

Пытался делать так
Код

   echo "Сейчас вы будете перемещены на такую-то страницу";
   sleep(10);
   header("Location:mypage.php");

но эффект совершенно не тот, предупреждение не выводится, сразу начинает грузиться mypage.php, только очень медленно.
PM MAIL   Вверх
Muchenik
Дата 3.4.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Может так
Код

<?
$reloadinter = 3000;
print "
    <script> setTimeout(\"this.location.replace('page.php')\",".$reloadinter.");</script>
    ";
?>



Если JS тебя не пугает
PM MAIL ICQ   Вверх
rax
Дата 4.4.2006, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 4.6.2004
Где: Егорьевск

Репутация: нет
Всего: 1



<Meta name="Refresh" Content="число (в секундах); Url=имя файла с расширением">

Это будет работать везде, и php здесь не нужен
PM MAIL WWW ICQ AOL YIM MSN   Вверх
skalex
Дата 4.4.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Еще вариант:
Код
<meta http-equiv=Refresh content="num_of_seconds; url=url_to_redirect">

PM   Вверх
sugee
Дата 4.4.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Muchenik, дома попробую...

Цитата(rax @ 4.4.2006, 10:02 Найти цитируемый пост)
<Meta name="Refresh" Content="число (в секундах); Url=имя файла с расширением">

Это будет работать везде, и php здесь не нужен
header("Location...") тоже нормально работает. Вопрос не в том как сделать редирект, а как перед ним сделать задержку.

PM MAIL   Вверх
Illuminaty
Дата 4.4.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



sugee, да будет тебе известна истина smile
перед отправкой заголовка (header) не должен производиться никакой вывод в выходной поток. Поэтому, с помощью PHP у тебя сделать не получиться. Поможет тебе JS (Muchenik) или HTML (skalex, rax).
HTML предпочтительнее.
Удачи!
PM MAIL ICQ   Вверх
Illuminaty
Дата 4.4.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



Можно и мануалы почитать.
PM MAIL ICQ   Вверх
sugee
Дата 4.4.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Цитата(Illuminaty @ 4.4.2006, 11:21 Найти цитируемый пост)
перед отправкой заголовка (header) не должен производиться никакой вывод в выходной поток
А буферизация на что?

Цитата(Illuminaty @ 4.4.2006, 11:21 Найти цитируемый пост)
Поэтому, с помощью PHP у тебя сделать не получиться
Перенаправление получается прекрасно, я не спрашивал как сделать редирект, читай пожалуйста вопрос внимательней!

PM MAIL   Вверх
sugee
Дата 4.4.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Вообще-то читать внимательней нужно мне. smile
Тем более что из показанного мной кода никак не видно, что я
использовал буферизацию вывода(но раз уж браузер редиректился на указанную страницу то по-другому и быть не могло). Впрочем в свете всего вышесказанного понятно что никакой буферизации здесь и не нужно.
С JS-ом все ok, но я остановился на html-варианте, потому как надёжнее.
Только так, как написал rax, у меня не сработало.
PM MAIL   Вверх
Serkys
Дата 5.4.2006, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(Illuminaty @ 4.4.2006, 12:21 Найти цитируемый пост)
перед отправкой заголовка (header) не должен производиться никакой вывод в выходной поток. Поэтому, с помощью PHP у тебя сделать не получиться. Поможет тебе JS (Muchenik) или HTML (skalex, rax).

Не знаю как работает JS, а HTML через теги META отправляет тоже заголовки, которые, как и header(), должны быть отправлены до первого вывода в браузер.
Цитата(sugee @ 4.4.2006, 20:49 Найти цитируемый пост)
Только так, как написал rax, у меня не сработало.

Вот только почему не стработало? Может со знаками препинания ошибся? rax правильно написал.
PM MAIL   Вверх
sugee
Дата 5.4.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



Цитата(Serkys @ 5.4.2006, 00:40 Найти цитируемый пост)
HTML через теги META отправляет тоже заголовки, которые, как и header(), должны быть отправлены до первого вывода в браузер
По идее да, однако всё работает, хотя я даже убрал ob_start() и ob_end_flush() которые у меня были в начале и конце скрипта.

PM MAIL   Вверх
Serkys
Дата 5.4.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(sugee @ 5.4.2006, 11:28 Найти цитируемый пост)
однако всё работает, хотя я даже убрал ob_start() и ob_end_flush()

Блин, чудеса. Это как так можно заголовки после вывода текста послать?
PM MAIL   Вверх
Serkys
Дата 5.4.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(sugee @ 3.4.2006, 23:52 Найти цитируемый пост)
Сейчас вы будете перемещены на страницу с результатами. Если вы не хотите ждать щелкните здесь

Обычно эта ссылка появляется для того, чтобы перейти по ней пока страница грузится. Когда страница загрузится, сразу автоматом перекидывает на эту ссылку. Или ты на эту страницу рекламу сунул smile ?
PM MAIL   Вверх
sugee
Дата 5.4.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 12.6.2005

Репутация: 1
Всего: 4



В общем так - это админка для гостевой. Можно отвечать на мессаги и удалять их. Если администратор отвечает на сообщение то он сразу попадает на обновленную страницу, где видит результаты своих действий. В случае удаления мессаги результаты не так бросаются в глаза, можно сразу и не понять удалилась она или нет.
Вот я и хочу чтобы сразу после удаления появилось подтверждение, повисело несколько секунд, а потом уже произошел переход.
Ну а для нетерпеливых естественно ссылка.
Не знаю может это и не лучший вариант с точки зрения юзабилити,
по-моему в народовских гостевых также сделано...
PM MAIL   Вверх
Serkys
Дата 5.4.2006, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(sugee @ 5.4.2006, 19:59 Найти цитируемый пост)
Вот я и хочу чтобы сразу после удаления появилось подтверждение, повисело несколько секунд, а потом уже произошел переход.

Делай как в РНРмайадмине и не парься. Там появляется отдельная страница, на ней "вы уверены, что хотите сделать то-то?". И кнопки "Да" и "Нет". Без редиректа, нажимаешь на кнопочку - он делает (или не делает) что нужно. Имхо удобно.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1243 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.