За последние 24 часа нас посетили 19603 программиста и 1604 робота. Сейчас ищут 872 программиста ...

Сессии и куки

Тема в разделе "PHP для новичков", создана пользователем _sVk_, 2 окт 2011.

  1. _sVk_

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

    С нами с:
    19 сен 2011
    Сообщения:
    4
    Симпатии:
    0
    Прочитал различные FAQ по сессиям, но не совсем понятно следующее:

    Хочу стартовать сессию (делать session_start()) только для залогиненых пользователей (то есть вставить в каждый скрипт строку вида "если пользователь залогинен, то session_start()"). Насколько я знаю, залогиненый от незалогиненого отличается только наличием переменной в $_SESSION, которую мы туда положили при успешном входе пользователя. Но доступ к переменным в $_SESSION появляется только после session_start(). Замкнутый круг.

    session.use_only_cookies = 1, то есть сессии только "кукичные"

    Вопросы:
    1) Отличается ли еще чем-нибудь залогиненый пользователь от незалогиненного (говорят, что $_REQUEST[session_name()] не пустой, если есть сессия, но это верно только для сессии, использующей запрос через адрес, а не куки)?
    2) является ли session_start() для всех пользователей лишней нагрузкой на сервер или не ломать голову, а на каждой странице делать в начале скрипта session_start() независимо, выполнен ли вход?
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    _sVk_
    Так, хватит фигней страдать.
    session_start() вызывать всегда. И писать в массив _SESSION нужную инфу для определения авторизации уже.
    Например так:

    PHP:
    1. <?php
    2.  
    3.  
    4. if(isset($_SESSION['is_logged']))
    5. {
    6.     // Тут можно всё проверить
    7.     // $_SESSION['login'];
    8.     // $_SESSION['hash'];
    9. }
     
  3. _sVk_

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

    С нами с:
    19 сен 2011
    Сообщения:
    4
    Симпатии:
    0
    Спасибо, исчерпывающий ответ.
     
  4. Rockman

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

    С нами с:
    18 ноя 2010
    Сообщения:
    53
    Симпатии:
    0
    Адрес:
    Россия
    По вашему поводу больше и не напишешь.