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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с ожиданием 
:(
    Опции темы
ReactOS
Дата 8.4.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

<html>
<head>
<title>Control System</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>

    <td align="center" valign="top" height="100%"><img src = "./wait.jpg"></td>

</tr>
</table>
</body>
</html>
<? sleep(5); ?>
<? header ("Location: index2.php"); ?>


Суть задачи состоит в том, чтобы показать обяъвление на странице index.php, а потом через 5 секунд перенаправить на index2.php
Искала в доках функцию для решения этой задачи, по-моему это функция sleep(); ,т.е. по логике сначала должна отобразиться на странице html-содержимое, как раз то объявление, а потом редирект на индекс2, но посколько хэдер срабатывает сразу же без ожидания, то перед по моей логике нужно вставить функцию sleep(); , чтобы был интервал времени до редиректа!

Моя логика нерабочая, попрошу мне объяснить в чем мои ошибки?  smile 

Камнями не кидать в меня smile
PM   Вверх
awers
Дата 8.4.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



ну если уже на php, то перед sleep надо flush делать

Добавлено через 48 секунд
а вообще meta HTTP-EQUIV="Refresh" CONTENT="5;URL='http:...
PM MAIL WWW ICQ Skype   Вверх
ReactOS
Дата 8.4.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

flush
(PHP 4, PHP 5)

flush — Flush the output buffer

Description
void flush ( void )

Flushes the output buffers of PHP and whatever backend PHP is using (CGI, a web server, etc). This effectively tries to push all the output so far to the user's browser. 

flush() has no effect on the buffering scheme of your web server or the browser on the client side. Thus you need to call both ob_flush() and flush() to flush the output buffers. 

Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser. 

Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client. 

Even the browser may buffer its input before displaying it. Netscape, for example, buffers text until it receives an end-of-line or the beginning of a tag, and it won't render tables until the </table> tag of the outermost table is seen. 

Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page. 

Return Values
No value is returned. 


хм...
PM   Вверх
awers
Дата 8.4.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



Rexona, и чё ХМ?

Добавлено через 1 минуту и 4 секунды
я полностью ответил однако

Добавлено через 1 минуту и 34 секунды
А вообще sleep это муветон
PM MAIL WWW ICQ Skype   Вверх
ReactOS
Дата 8.4.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(awers @  8.4.2008,  15:57 Найти цитируемый пост)
Rexona, и чё ХМ? 

туплю с flush();, что-то недопонимаю или англ. уже перестала понимать smile

Добавлено через 1 минуту и 47 секунд
Цитата(awers @  8.4.2008,  15:57 Найти цитируемый пост)
А вообще sleep это муветон

муветон? smile
а это что такое? movietone?
PM   Вверх
awers
Дата 8.4.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



Короче... После <head> втыкни <META HTTP-EQUIV="REFRESH" CONTENT="секунд;URL=адрес">

Добавлено через 1 минуту и 58 секунд
Rexona, это значит "неправильно так делать". представь, скрипт вместо 0,00001 сек будет висеть в памяти 5 сек...

Добавлено через 5 минут и 18 секунд
тему можно пометить решенной
PM MAIL WWW ICQ Skype   Вверх
MoLeX
Дата 8.4.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(awers @  8.4.2008,  16:01 Найти цитируемый пост)
После <head> втыкни <META HTTP-EQUIV="REFRESH" CONTENT="секунд;URL=адрес">

лучшего всего использовать...


Цитата(Rexona @  8.4.2008,  15:54 Найти цитируемый пост)
по-моему это функция sleep();

да это она, только не думаю что твоему хостеру понравятся такое затянувшее выполнения скрипта..
awers по твоему вопросу уже полностью ответил, дерзай  smile  


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
mishaSL
Дата 8.4.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Rexona, либо через заголовки:
Код

header("Refresh: 5; url=index2.php");
<html>
<head>
<title>Control System</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td align="center" valign="top" height="100%"><img src = "./wait.jpg"></td>
</tr>
</table>
</body>
</html>


sleep() - для этих целей использовать нельзя (т.е. не желательно), т.к. процесс висит в памяти.

Добавлено через 1 минуту и 11 секунд
Только вместо index2.php лучше полный адрес указывать, вместе с http://


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
ReactOS
Дата 8.4.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



mishaSL, awers спасибо!

только тогда остался один вопрос: "в каких случаях нужно применять функцию sleep(); , т.е. где без нее не обойтись? " (а то встает вопрос, для чего она вообще нужна, если от нее проблемы)
PM   Вверх
mishaSL
Дата 8.4.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Rexona @  8.4.2008,  16:52 Найти цитируемый пост)
в каких случаях нужно применять функцию sleep(); , т.е. где без нее не обойтись? 

лучше ее не использовать.
Если только вы понимаете, что у вас больше нет вариантов кроме sleep(). (у меня таких ситуаций небыло)


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
flashaa
Дата 8.4.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Rexona @  8.4.2008,  15:54 Найти цитируемый пост)
Суть задачи состоит в том, чтобы показать обяъвление на странице index.php, а потом через 5 секунд перенаправить на index2.php

Посмотрите как такое сделано нормальными руками ) 
http://dklab.ru/chicken/nablas/17.html

ТУпо HTML:
Код


<meta http-equiv=Refresh 
    content="5; URL=/some/other/script.html">


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


9/10 программиста
***


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

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



Цитата(awers @  8.4.2008,  16:55 Найти цитируемый пост)
ну если уже на php, то перед sleep надо flush делать

Не пойдет, со flush-ем уйдут заголовки и header() уже не отработает.

Цитата(mishaSL @  8.4.2008,  17:16 Найти цитируемый пост)
sleep() - для этих целей использовать нельзя (т.е. не желательно), т.к. процесс висит в памяти.

Не просто висит в памяти, но и жрет процессорное время.
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.0571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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