За последние 24 часа нас посетили 52135 программистов и 1763 робота. Сейчас ищут 979 программистов ...

Как отобразить Alert 1 раз за сессию

Тема в разделе "PHP для новичков", создана пользователем AlexPebody, 3 мар 2010.

  1. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Приветствую всех! Пожалуйста подскажите такую вещь, как то давно делал, просто напрочь забыл ((
    как сделать вывод сообщения alert 1 раз, даже если к страничке будут обращаться и обновлять окно браузера, до тех пор, пока браузер не будет закрыт и открыт вновь, alert не покажется...

    Код (Text):
    1.  
    2. <script type="text/javascript">
    3. function message()
    4. {
    5. alert("Сообщение!")
    6. }
    7. </script>
    8.  
    9. <body onload=message();>
    Вот простейший скрипт алерта, но как сделать чтобы без куки или даже с куки он выводился 1 раз, даже если страничку обновлять, пока не будет закрыт браузер...?

    Заранее всем спс, прошу модеров не пинать ))
     
  2. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Без куки можно, но будет полным бредом. Делайте через куки (руки)

    Код (Text):
    1.  
    2. Если куки нет
    3.    Установить куку
    4.    Вывести алерт
    5. Иначе
    6.    Ничего не делать
    7. КонецЕсли
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. //Логинимся
    3. setcookie('Alert',1);
    4. ?>
    5.  
    PHP:
    1. <?php
    2. if(isset($alert=$_COOKIE['Alert'])){
    3. echo '<script language="JavaScript">
    4. alert("123");
    5. </script>';
    6. setcookie('Alert',1,time()+0);
    7. }
    8. ?>
    9.  
     
  4. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    спс! куки да, но я как то без куки делал, блин подниму как то библиотеку (на винте резервы где то скриптов) обязательно выложу.
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. //логинимся
    3. header("Location: index.php?alert=1");
    4. ?>
    5.  
    index.php
    PHP:
    1. <?php
    2. if(issset($_GET[alert])){
    3. echo '<script language="JavaScript">
    4. alert("123");
    5. </script>';
    6. }?>
    7.  
     
  6. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Parse error: syntax error, unexpected '=', expecting ',' or ')' in /home/index.php on line 30

    if(isset($alert=$_COOKIE['Alert'])){

    на это ругается, я приминил так:

    Код (Text):
    1.  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
    4. <head>
    5. <jdoc:include type="head" />
    6. <link rel="apple-touch-icon" href="<?php echo $template->url ?>/apple_touch_icon.png" />
    7. </head>
    8.  
    9. <body id="page" class="yoopage <?php echo $this->params->get('columns'); ?> <?php echo $this->params->get('itemcolor'); ?> <?php echo $this->params->get('toolscolor'); ?>">
    10.  
    11. <?php
    12. setcookie('Alert',1);
    13. if(isset($alert=$_COOKIE['Alert']))
    14.     {
    15.     echo '<script language="JavaScript">
    16.     alert("Сообщение!");
    17.     </script>';
    18.     setcookie('Alert',1,time()+0);
    19.     }
    20. ?>
    21.  
    22.     <?php if($this->countModules('absolute')) : ?>
    23.     <div id="absolute">
    24. ...
    Что может быть не так?
     
  7. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    что самое интересное, в той библиотеке алертом выводилось сообщение, что до конца сессии осталась 1 минута и что-то ещё проверялось, idle time, вроде, не помню
     
  8. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    да, верно, но там еще не по таймауту было 1 сообщение, вот его то я и не могу ни ввспомнить ни найти на текущем винте (( что с куки скриптом не так?
     
  9. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    isset($_COOKIE['Alert'])
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    и кстати, кука сразу после установки не прочитается. Только после перезагрузки страницы
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    topas
    не понял, оба варианта вроде как рабочие...к чему ссылки?
     
  12. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    нужно при входе на страничку отобразить окошко 1 раз и не отображать более сколько бы по страничке не ходил, пока браузер не закроется, далее при открытии опять отобразить и т.д. ))

    есть конкретные варианты? ))

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

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    записать в сессию, что показывали и успокоиться.

    бывает…
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. header('Location: [url=http://example.com']http://example.com'[/url]);
    4. ?>
     
  14. AlexPebody

    AlexPebody Активный пользователь

    С нами с:
    14 янв 2007
    Сообщения:
    247
    Симпатии:
    0
    Всяко пробовал, подошел вот этот вариант:

    Код (Text):
    1.  
    2. <?php
    3. setcookie('Alert',1);
    4. ?>
    5.  
    6. содержание index.php
    7.  
    8. <?php
    9. if(!isset(COOKIE['Alert'])){
    10. echo '<script language="JavaScript">
    11. alert("Сообщение!");
    12. </script>';
    13. setcookie('Alert',0);
    14.  }
    15.  ?>
    Все происходит как нужно, при загрузке стр. куки не находит и выводит сообщение, далее при "хождении" по стр. страничка обносляется, куки читается и не выводит до закрытия браузера.
     
  15. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Нахрена на РНР куку ставить, ёпт?
    Ставте на JS.