За последние 24 часа нас посетили 64839 программистов и 1740 роботов. Сейчас ищут 1882 программиста ...

Что в данном случае лучше сессии или куки?

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

  1. kotjara2

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

    С нами с:
    2 ноя 2010
    Сообщения:
    23
    Симпатии:
    0
    Прошу совета, дорогие форумчане.
    Я хочу создать интернет-магазин. Нужно открыть странички для админа (добавляет категорию, удаляет товар) и пользователя(если он войдет в систему, у него появится возможность добавления товара в корзину, кроме того в отдельной таблице session для пользователя хранится инфа о последнем времени выхода).
    Я никак не пойму, что лучше session или куки?
    Делаю сессии и для пользователя и для админа, а потом напугалась, а как же делать инфу о последнем вызове пользователя, ведь для сессии время жизни 8 часов...
    Помогите, пожалуйста!!!!
     
  2. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Я бы для безопасности использовал стандартную сессию. Хотя... Может быть и в кукисах лучше хранить :)

    Пример:

    Код (Text):
    1. php_value session.gc_maxlifetime 2629743
    2. php_value session.cookie_lifetime 2629743
    Это продлит время жизни сессии на 1 месяц.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сессии для текущего визита. куки - для хранения информации между визитами. кукам доверять нельзя, хранить в них можно только то, что и так известно.
     
  4. kotjara2

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

    С нами с:
    2 ноя 2010
    Сообщения:
    23
    Симпатии:
    0
    Спасибо, думаю все-таки лучше сессии, так как куками небезопасно передавать пароли и логины...
    Только что-то не пойму, как в отдельной таблице session_user хранить id, random (сгенерирование случайное число), date(дата и время последнего обращения).
    В лекции написано.
    Ну хорошо, строчка удалилась, а дата куда засовывается? Чтобы вывести имя пользователя, дату и время его прошлого визита при входе его в систему?
    В таблицу пользователя-покупателя?
     
  5. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Я заносил в сессию только ид пользователя при авторизации. К примеру:

    $_SESSION['user_id'] = $row['id'];

    И уже потом из таблицы считывать юзера с этии ид. т.е все данные хранятся в самой таблице. Ну и обязательно юзать что то типо

    if(isset($_SESSION['user_id'])) ...

    Ну тут думаю вам все известно =)


    Хотя некоторые данные можно 1 раз забрать и выводить в самой сесси, чтобы лишний раз не обращаться..
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    kotjara2
    мутишь.

    прислали логин с паролем - сверься с БД и $_SESSION['authorized']=true
    и этого достаточно. нигде ничего хранить не надо.
     
  7. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    igordata, ну а если я хочу хранить в таблице данные о последнем визите итд итп, одной $_SESSION['authorized']=true будет мало :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Invision
    я делаю так

    $_SESSION['user_id'] = юзер id из базы данных. Если пусто - значит гони пароль и логин, если есть - то все пляшет от этого айдишника. Усё.
     
  9. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Ну, а я о чем говорю, так и делаю :)