За последние 24 часа нас посетили 17138 программистов и 1298 роботов. Сейчас ищут 1623 программиста ...

$_SESSION

Тема в разделе "PHP для новичков", создана пользователем sheff, 23 июн 2015.

  1. sheff

    sheff Новичок

    С нами с:
    23 июн 2015
    Сообщения:
    9
    Симпатии:
    0
    Подскажите, пожалуйста.
    Хочу сделать, чтоб на сайте были разные цвета при каждом посещении, но если пользователь уже зашел и просто переходит между страницами, то цвет оставался.

    Почитал, что сделать это можно через rand() и $_SESSION
    ввожу:

    <?php

    session_start();
    $random = rand(1,5);
    $_SESSION['number'] = $random;
    $number = print_r($_SESSION['number']);
    ?>

    <div class="<?php echo $number; ?>"></div>
    ну и разные бэкграунды для каждой цифры.

    но у меня этот $_SESSION['number'] не остается, а обновляется при каждой загрузке новой страницы.

    Как мне это сделать?
    Может не через $_SESSION?
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    в начале надо сделать проверку на
    Код (Text):
    1. $_SESSION['number']
    , а если его нет, тогда уже идти дальше
    Код (Text):
    1.  
    2. session_start();
    3. $random = rand(1,5);
    4. $_SESSION['number'] = $random;
    5. $number = print_r($_SESSION['number']);
    :)
     
  3. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Код (PHP):
    1. if(!isset($_SESSION['number'])) {
    2.     $number=$_SESSION['number']=rand(1,5);
    3. } else {
    4.     $number=$_SESSION['number'];
    5. }
     
  4. kowapos

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

    С нами с:
    18 янв 2013
    Сообщения:
    120
    Симпатии:
    0
    Код (PHP):
    1. if(!$_SESSION['number']){
    2.   $random = rand(1,5);
    3.   $_SESSION['number'] = $random;
    4. }
    5.  
    6. $number = print_r($_SESSION['number']);
    7.  
     
  5. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    он же $number будет подставлять в имя класса цифру...
    Код (PHP):
    1. <div class="<?php echo $number; ?>"></div>
     
  6. sheff

    sheff Новичок

    С нами с:
    23 июн 2015
    Сообщения:
    9
    Симпатии:
    0
    Спасибо.
    Сделаю там какой-то <?php echo 'rand-class'.$number; ?>

    Добавлено спустя 2 минуты 1 секунду:

    Спасибо. Помогло.
    А теперь не скажете, как менять эти переменные каждый час, например.


    пишу так:
    Код (PHP):
    1.  
    2. $_SESSION['time'] = time();
    3.  
    4. if(!isset($_SESSION['number']) || time() - $_SESSION['time']>5){
    5.   $random = rand(1,5);
    6.   $_SESSION['number'] = $random;
    7. }
    8.  
    9. $number = print_r($_SESSION['number']);
    10.  
    не выходит. $_SESSION['time'] меняется

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  7. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Код (PHP):
    1. if(!isset($_SESSION['time'])) {
    2.     $_SESSION['time']=strtotime('+1 hour');
    3. } else if(time()>=$_SESSION['time']) {
    4.     unset($_SESSION['time'],$_SESSION['number']);
    5. }
    6. if(!isset($_SESSION['number'])) {
    7.     $number=$_SESSION['number']=rand(1,5);
    8. } else {
    9.     $number=$_SESSION['number'];
    10. }
    11. echo $number;