Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> время сессии 
:(
    Опции темы
namra
Дата 21.7.2013, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



как увеличить время определеной только одной сессионой переменной ?
PM MAIL   Вверх
Arantir
Дата 21.7.2013, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Что значит "сессионной переменной"? И что значит ее время?
Переменные из сессии живут столько, сколько живет сессия. Они к ней привязаны. 
По умолчанию они сохранены в файле с id сессии. Нет файла - нет переменных.

Это сообщение отредактировал(а) Arantir - 21.7.2013, 00:23


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
namra
Дата 21.7.2013, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 26.4.2007

Репутация: нет
Всего: нет



как увеличить время определеной сессии допустим $_SESSION['name'], а не остальных, чтобы после закрытия браузера, это сессия сохранилась или как это реализовать возможно?

Это сообщение отредактировал(а) namra - 21.7.2013, 00:27
PM MAIL   Вверх
Arantir
Дата 21.7.2013, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(namra @  20.7.2013,  23:26 Найти цитируемый пост)
 время определеной сессии допустим $_SESSION['name']

$_SESSION - это уже текущая сессия, а не массив всех сессий...

На самом деле, у PHP нету внутренних средств для работы с чужими сессиями.

Короче... Все сложно.

Есть параметр в php.ini под названием session.gc_maxlifetime. Он отвечает за чистку старых сессий. Сколько поставишь - столько будут жить сессии в ожидании следующего визита пользователя.
Так же можно установить жизнь куки (по умолчанию - это до окончания сессии, то есть до закрытия браузера, в большинстве случаев)
Код

// обязательно перед открытием сессии, а не после него
session_set_cookie_params(1209600); // 14 суток
session_start();


В частности, если вкрутить первый параметр на достаточно долго, то вторым способом можно вполне контролировать время жизни сессии индивидуально.
Однако же, стоит заметить, что куку можно подделать, можно заставить ее не удаляться, да и вообще отправить сайту что угодно можно.
Контролировать же время жизни сессии именно на сервере из-под PHP нельзя.

В общем, для качественного контроля над сессиями  придется переопределить метод их хранения. Это делается через session_set_save_handler.
Например, если хранить их в базе данных, то можно без проблем делать с ними все, что угодно, средствами БД.



Цитата(namra @  20.7.2013,  23:26 Найти цитируемый пост)
чтобы после закрытия браузера, это сессия сохранилась или как это реализовать возможно?

А может... просто сохраните это в куку?
Код

// Перед отправкой каких бы то ни было данных в браузер
setcookie("name", "Вася", time() + 60*60*24*30 /* на месяц */);
Код

// в следующем запросе
echo $_COOKIE['name']; // "Вася"



Вообще, обычно, сессия открывается лишь на короткое время. Автоматическая авторизация как раз таки реализуется куками.
Код

setcookie("login", "vasya", time() + 60*60*24*30 /* на месяц */);
setcookie("pass", md5("qwerty"), time() + 60*60*24*30 /* на месяц */); // плохое шифрование, это только пример!
Код

if (isset($_COOKIE['login']) && isset($_COOKIE['pass'])) {
    $login = $_COOKIE['login'];
    $passhash = $_COOKIE['pass'];
    // логиним юзера
}


php-шные сессии тупо не предназначены и никогда не были предназначены для продолжительного хранения чего-либо. Это просто способ запомнить пару байт между запросами в непродолжительном сеансе пользователя, чтобы не идти за одними и теми же данными каждый раз в БД или т.п.

Надолго сохранение данных производиться средствами вашего php-шного веб-приложения. С помощью базы данных, например.

Это сообщение отредактировал(а) Arantir - 21.7.2013, 02:48


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.