помогите с session_start

Тема в разделе "PHP", создана пользователем nmDimas2, 6 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    Есть Движок ну и как все движки есть index.php
    Задача
    Ограничить доступ на сайт чтоб заходило 20-30 человек
    Мой выход

    Создал пхп Файл index.php а от движка назвал inex.php

    в index.php

    session_start();

    if (empty($_SESSION['login']) or empty($_SESSION['id']))
    {
    include("auth.php");
    }
    else
    {
    include("inex.php");



    Тоесть я прописал для 20 человек логин и пароль в БД
    ВСе работает но

    КАК сделать так чтоб через 15 минут или меньше Сесия автоматически удалялась и приходилось снова вписать логин и пароль
     
  2. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    PHP:
    <?php
    session_set_cookie_params
    (900); //900 - это 15 минут в секундах
    session_start();
    ...
     
    nmDimas2 нравится это.
  3. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    а если сессии серверные, не на куках?
     
  4. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    они все серверные, только идентификатор сессии передается либо куками либо в гет запросе, если гет запросом, тогда так:
    PHP:
    ini_set("session.gc_maxlifetime"900);
     
  5. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    175
    Симпатии:
    9
    Можно хранить сессии в БД и по условию (где время жизни более > 15 минут) делать unset($_SESSION[user]);
     
  6. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    а БД тут зачем? можно хранить время создания сесси в самой сессии да и все :)
     
  7. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    175
    Симпатии:
    9
    ну так вопрос автора выставить лимит посетителей 30 человек.
    все сессии будут храниться в базе и каждый пользователь, в том числе и 31-ый будет обращаться в базу и проверять, не превышено ли время посещения и есть ли свободный слот для работы или нет :)
     
    nmDimas2 нравится это.
  8. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    контролировать именно 30 или Х человек лучше имея какуюто структуру, и лучше всего как уже сказали храниться в СуБД,
    я там делаю для админки, тк рут должен быть 1 в текущий момент времени
    в таблице хранить ид пользователя, время последнего действия, сид сессии
    и удалять потом так session_destroy();
     
  9. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    СПС всем вроде все работает но не все
    Возникла такая проблема дела в том что когда человек водит логин и пароль он попадает на сайт как и должно но следующие нажатие или переход на другую страницу опять запрашивает Логин и пароль

    Я так думаю сам движок тоже использует Сесию как сделать чтоб на сайте была сесия движка и сесия на скрипт авторизации
     
  10. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Ну если сайт использует стандартные сессии, то сделай на основе mysql и они никак пересекаться не будут.
     
Статус темы:
Закрыта.