Задаване на време за сесия?

streleca_stz

Registered
Здравейте! Искам да ви попитам как мога да задам време на живот (ако така може да се израза ;д) на сесията? И да, знам че сесиите не са като бисквитките, но в моя случай не се унищожават само когато си затворил браузъра, а ако например не си отварял таба от извесно време и т.н. Или ако е бил затворен таба (а не целия браузър).. :shock:
 
Виж в php.ini на колко е сложено session.gc_maxlifetime. Попринцип би трябвало да е 1440 в секунди, което е около 24 мин. Може да си го увеличиш на повече :)

Повече инфо може да видиш тук http://www.php.net/manual/en/session.configuration.php
 
PHP:
//Това постоянно трубва да се ъпдейтва и да се поставя в колона при потребителя. С тази променлива засичаш активността на потребителя или последно кога е бил активен и се ъпдейтва на всички страници които посещава потребителя.
$last_activity_member = time();

//Променливата $now_time записва времето в момента :
$now_time = time();

//Вадим от базата променливата 
$onmembers = mysql_query("SELECT * FROM users ORDER BY last_activity > '0' ")or die(mysql_error());

while($row = mysql_fetch_array($onmembers)) 
{ 
	$id = $row['id'];
	$user = $row["user"];
//Вадим от времето сега последната активност на потребителя и ако цифрата е по-малка или равна на 15 минутки по 60 секунди = (900) потребителя е логнат. Ако цифрата е по-голяма дава дестрой на сесията, но кода го пиша тук и е много неточен. Ще търпи огромни промени но принципа е такъв 
	$last_activity_member = $row["last_activity"];
  if(($now_time - $last_activity) <= '15*60')
{
echo "Потребителя е логнат";
}
else
{
session_destroy(); 
}
}
 
Radko каза:
Виж в php.ini на колко е сложено session.gc_maxlifetime. Попринцип би трябвало да е 1440 в секунди, което е около 24 мин. Може да си го увеличиш на повече :)

Повече инфо може да видиш тук http://www.php.net/manual/en/session.configuration.php
А как мога да го променя ако не съм на локална машина? :shock:
 
streleca_stz каза:
Radko каза:
Виж в php.ini на колко е сложено session.gc_maxlifetime. Попринцип би трябвало да е 1440 в секунди, което е около 24 мин. Може да си го увеличиш на повече :)

Повече инфо може да видиш тук http://www.php.net/manual/en/session.configuration.php
А как мога да го променя ако не съм на локална машина? :shock:
Когато не си на локалния нямаш достъп до php.ini файла.
 
Разгледай линка, това е списък с възможни начини за промяна на настройки at runtime.
http://bg2.php.net/manual/en/configuration.changes.php

Ето списък с рънтайм опциите за сесиите:
http://bg2.php.net/manual/en/session.configuration.php

Най-лесно, ако хоста ти позволява, можеш да използваш ini_set:
PHP:
ini_set('session.gc_maxlifetime', секунди);
:)
 
streleca_stz каза:
Radko каза:
Виж в php.ini на колко е сложено session.gc_maxlifetime. Попринцип би трябвало да е 1440 в секунди, което е около 24 мин. Може да си го увеличиш на повече :)

Повече инфо може да видиш тук http://www.php.net/manual/en/session.configuration.php
А как мога да го променя ако не съм на локална машина? :shock:

PHP:
ini_set('session.gc_maxlifetime', seconds);

Попринцип с ini_set, можеш да порменяш конфигурацията на php.ini в рънтайма.

Естествено, ако хостинг провайдъра ти го позволява. Ако имаш проблем с промяната на стойностите, свържи се с хостинг провайдъра ти и им кажи да ти го променят.
 

Back
Горе