[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как нада "убиватъ" сесию ? )
dadli
привет всем, мне вопрос о сесии

естъ две фаила index.php и auth.php

вот код фаила index.php


<?php
if (isset($_REQUEST[session_name()])) {
ini_set("session.gc_maxlifetime", 5);
session_start();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Untitled Document</title>
</
head>

<
body>
<?php
if (isset($_SESSION['name'])) {
echo "привет ".$_SESSION['name']." ви авторизовани";
}
else {
echo "ви не авторизовани, ви гост";
}


echo "<br>";
?>


<form action="auth.php" method="post" name="">
<
input type="text" name="userlogin" />
<
br />
<
input type="password" name="userpassword" />
<
br />
<
br />
<
input type="submit" name="sub" value="vxod" />
</
form>

</
body>
</
html>





а ета код фаила auth.php


<?php
if (isset($_POST['userlogin'])) {
$userlogin = $_POST['userlogin'];
}

if (isset($_POST['userpassword'])) {
$userpassword = $_POST['userpassword'];
}



if (isset($userlogin) && isset($userpassword)) {
if ($userlogin == "morgan" && $userpassword == "freeman") {
ini_set("session.gc_maxlifetime", 5);
session_start();
$_SESSION['name'] = $userlogin;
header("Location: index.php");
}
}

?>



если логин и пассворд савпадает, фаил auth.php сделает етава:
у сесии дает время жизни, (длительность етои времии 5 секунд)
стартует сесию
глобалном масиве $_SESSION['name'] дает значение: morgan
и перенаправлюет в фаиле index.php


после перенаправлении т.е. после авторизации в фаиле index.php вижу:
привет morgan ви авторизовани


харашо, ета всо ясно,
но вот што я не понимаю:
после перенаправлении в index.php, я жду более чем 5 секунд, патом я перезагружаю браузер и еще вижу:
привет morgan ви авторизовани

а после перезагрузки я хотел видитъ етава:

ви не авторизовани, ви гост
патаму, што я ету строку: ini_set("session.gc_maxlifetime", 5)
вот так понимаю :
ета функця дает сесию времени жизни, ета время ровна 5 секунд, если в течени 5 секунд не будеть ни какои
запрос, т.е. не будеть нажат не одного силку, тогда ета скрипт - ini_set("session.gc_maxlifetime", 5) должен уничтожитъ (удалитъ) сесию




а так не происходит, откриваю папку /tmp и там тоже естъ сесия, в общем сесия не удаляется,
скажите прошу:
я не правилно понимаю сутъ функции - ini_set("session.gc_maxlifetime", ) ?
ета функця делает другово дела, и не ета, котории я на верху писалъ ?
как нада сделатъ етава:
назначитъ времию сесию, и после окончении етои времени, если ни будитъ ни какои запрос (ни нажата ни одна силка), "убивать" ету сесию.


помагите пожалуиста, если поняли мои руски.
он хуже чем резултати переводчика Google да ? :blink:



Спустя 2 часа, 49 минут, 47 секунд (9.06.2011 - 19:23) ИНСИ написал(а):
dadli не везде разрешают использовать ini_set. Попробуй функцию: php session_set_cookie_params.

Есть особенность функции, ее надо ставить НАД session_start().....

Цитата
помагите пожалуиста, если поняли мои руски.
он хуже чем резултати переводчика Google да ? blink.gif

Все понятно!!!! smile.gif Молодец!

Спустя 35 минут, 48 секунд (9.06.2011 - 19:59) dadli написал(а):
velbox
спасибо, посматрю ету функцю

Спустя 39 минут, 33 секунды (9.06.2011 - 20:38) inpost написал(а):
dadli
А где проверял? Локально или на хостинге? Банально на хостинге отключают доступ к настройке через php.ini.
Я это к тому, что может проще было включать сессию на всех страницах вне зависимости от действий, при первой активности помечать дату и время открытия страницы в $_SESSION['active'], и после перезагрузки если $_SESSION['active'] + 5 секунд < даты сейчас, просто саму сессию очищать через $_SESSION = array();

Спустя 1 час, 27 минут, 59 секунд (9.06.2011 - 22:06) twin написал(а):
Цитата
просто саму сессию очищать через $_SESSION = array();
????

Спустя 33 минуты, 40 секунд (9.06.2011 - 22:40) inpost написал(а):
twin
Можно и убить:
session_unset();
session_destroy();

Спустя 20 минут, 13 секунд (9.06.2011 - 23:00) dadli написал(а):
inpost
на локалном сервере - денвере тестирую
верся пхп - 5.3.3
когда phpinfo() смотрю, в разделе session написана :
session.gc_maxlifetime 5 (Local Value) 1440 (Master Value)

харашо, пониятно што ви гаварите но абисните пожалуиста если вам ни лен, што делает ета функця:
ini_set("session.gc_maxlifetime", х) ?

Спустя 15 минут, 8 секунд (9.06.2011 - 23:15) ИНСИ написал(а):
dadli почитай информацию тут: http://www.veldv.info/content/%D0%BF%D1%80...D0%B8%D0%B8-php

Думаю тебе будет познавательно smile.gif

Спустя 4 минуты, 6 секунд (9.06.2011 - 23:19) dadli написал(а):
velbox
ok, спасибо smile.gif


_____________


когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.