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

Форум PHP

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

 

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

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

тема: показ сообщения
 
 автор: *m*   (08.07.2009 в 14:23)   письмо автору
 
 

Всем привет!)

Подскажите нужно сделать, чтобы в начале работы скрипта выводилось сообщение.
далее скрипт обновляется, но выполняются уже другие действия. Как сделать так чтобы первоее собщение уже не выводилось?

Спасибо.

  Ответить  
 
 автор: Trianon   (08.07.2009 в 14:27)   письмо автору
 
   для: *m*   (08.07.2009 в 14:23)
 

обновляется скрипт или страница?
Если обновляется страница - скрипт начинает работать заново.

  Ответить  
 
 автор: *m*   (08.07.2009 в 14:43)   письмо автору
 
   для: Trianon   (08.07.2009 в 14:27)
 

щас попробую объяснить:

сначала призагрузке странице появляется сообщение (какоенибудь)

далее пользователь соглашается (нажимает кнопку формы данные летят обработчику и если согласие принято) ему задается вопрос..

так вот как сделать чтобы сообщение которое выводиться в начале больше не показывалось??

дополнюсь, пользователь попадает на страницу переходом по ссылке.

  Ответить  
 
 автор: Trianon   (08.07.2009 в 15:02)   письмо автору
 
   для: *m*   (08.07.2009 в 14:43)
 

>сначала призагрузке странице появляется сообщение (какоенибудь)
>далее пользователь соглашается (нажимает кнопку формы данные летят обработчику и если согласие принято) ему задается вопрос..
>так вот как сделать чтобы сообщение которое выводиться в начале больше не показывалось??
>дополнюсь, пользователь попадает на страницу переходом по ссылке.

либо сделать обработчиком формы скрипт, отличный от того, который эту форму рисует.
Либо перед выводом сообщения проверять, получены или нет данные из формы.
И выводить только в том случае, если не получены.

  Ответить  
 
 автор: *m*   (08.07.2009 в 16:11)   письмо автору
 
   для: Trianon   (08.07.2009 в 15:02)
 

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

(страница открывается по ссылке, не через форму)

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

>сделать обработчиком формы скрипт, отличный от того, который эту форму рисует.

вот здесь не совсем понятно, причем тут мой вопрос?

  Ответить  
 
 автор: Trianon   (08.07.2009 в 16:17)   письмо автору
 
   для: *m*   (08.07.2009 в 16:11)
 

Так про форму Вы сами упомянули.

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:05)   письмо автору
 
   для: *m*   (08.07.2009 в 14:43)
 

Воспользуйтесь ссесией.

  Ответить  
 
 автор: *m*   (08.07.2009 в 16:07)   письмо автору
 
   для: sim5   (08.07.2009 в 15:05)
 

а как с помощью сессеий такое решить?

чуть подробнее можно..

  Ответить  
 
 автор: sim5   (08.07.2009 в 16:25)   письмо автору
 
   для: *m*   (08.07.2009 в 16:07)
 

Просто в скрипте проверяете, установлена ли некая сессионная переменная, и если установлена, то не выдавать более сообщение и еже с ним действия. В свою очередь, эта сессионная переменная устанавливатеся при первой выдаче сообщения.
Можете и сразу установить эту переменную в сессии, булевого типа, например, установив изначально его в false, а при выдаче сообщения в true, либо 0 и 1.... в общем как будет более удобно в контексте задачи вашей.

  Ответить  
 
 автор: *m*   (08.07.2009 в 20:09)   письмо автору
 
   для: sim5   (08.07.2009 в 16:25)
 

опа спасибо, так и сделаю)

  Ответить  
 
 автор: *m*   (09.07.2009 в 13:52)   письмо автору
 
   для: sim5   (08.07.2009 в 16:25)
 

собсна сделал так:


<?
if( $_SESSION['info'] == false) {
// выводим сообщение
и
$_SESSION
['info'] = true;
}
//далее проверяем данные и задаем вопрос..
?>

все работает, сообщение не появляется боле..
но вот новая проблема, теперь если пользователь решит вернуться на начало страницы, он увидит пустоту, поскольку, переменная info уже true.. и будет true еще 24 минуты поскольку, я не менял конфигу время жизни сессии.., если не делать нулевым время жизни сессии, как можно решить подобное?

  Ответить  
 
 автор: sim5   (09.07.2009 в 14:29)   письмо автору
 
   для: *m*   (09.07.2009 в 13:52)
 

Вообще же достаточно if(!$_SESSION['info']) ..... else.
Что значит вернутся на начало страницы, и что это за страница мне не ведомо, и стоит ли громоздить все в кучу на данной странице (прверки и вывод результатов, например)....

  Ответить  
 
 автор: *m*   (09.07.2009 в 20:21)   письмо автору
 
   для: sim5   (09.07.2009 в 14:29)
 

>Вообще же достаточно if(!$_SESSION['info']) ..... else.

будьте добры пример, не догоняю..

>Что значит вернутся на начало страницы, и что это за страница мне не ведомо, и стоит ли громоздить все в кучу на данной странице (прверки и вывод результатов, например)....

я имел ввиду, страницу на которой выполняется скрипт. Тоесть когда пользователь попадает на страницу ему выводиться сообщение, а далее задается вопрос, но если прейти в браузере назад, то есть в начало этой страницы, на то место откуда она загрузилась то пользователь уже ничего не увидит..

а на этой странице ничего и не награмаждено, там проверка всего одного параметра..

  Ответить  
 
 автор: sim5   (09.07.2009 в 20:55)   письмо автору
 
   для: *m*   (09.07.2009 в 20:21)
 

<?
$a 
false;
echo 
$a == false "a = false" "a = true";
echo !
$a "a = false" "a = true";
?>

И в первом, и втором случае будет выведено "a = false", так как записи условия $a == false и !$a идентичны по условию.
! в РНР (да и не только в нем) означает логическое отрицание, то есть, запись !$a по смыслу звучит так:
ИСТИНА (TRUE), если $a не равна ИСТИНЕ (TRUE), а является ЛОЖЬЮ (FALSE)
То есть, вместо if ($_SESSION['info'] == false) достаточно написать if(!$_SESSION['info']).

Перейти назад как, по истории браузера? Да и зачем тогда прятать чего-то, или наоборот выводить опять нечто, чего уже видели? Я задачи, логики работы вашего скрипта не представляю, мне трудно сказать что либо или посоветовать.

  Ответить  
Rambler's Top100
вверх

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