|
|
|
|
|
для: Akira
(09.06.2005 в 17:00)
| | session_destroy() не убивает сид. линк в первый раз идет с сидом. а если обновить страницу, то уже без сида. а надо чтоб сразу шел без сида. | |
|
|
|
|
|
|
|
для: RV
(09.06.2005 в 16:40)
| | http://softtime.ru/forum/read.php?id_forum=1&id_theme=4520&page=1 | |
|
|
|
|
|
|
|
для: RV
(08.06.2005 в 09:09)
| | Ну дык как в линк сессию то убить?? | |
|
|
|
|
|
|
|
для: Akira
(07.06.2005 в 19:37)
| | стоп. а что с примером то?
<?
session_start();
$num = "f";
if ($num === "f")
{
session_unregister(session_id());
session_destroy();
}
echo "<a href = ляля>линк</a>";
?>
|
sid в линке так с первого раза и не убился | |
|
|
|
|
|
|
|
для: RV
(07.06.2005 в 19:19)
| | Вы бы воложили полный листинг.
Так можно было бы проверить как работает у других. | |
|
|
|
|
|
|
|
для: Akira
(07.06.2005 в 19:06)
| | Akira
у меня функция update возвращает тру или фолс (if ... return true else return false)
ну я так и проверяю.
а во вторых если скрипт работает и зенд не дает ошибок, то использую === вместо == | |
|
|
|
|
|
|
|
для: Akira
(07.06.2005 в 19:01)
| | Вот , что я использовал для wap ONLINE.
<?
include 'db/config.php';
@session_start();
$id = session_id();
if (empty($name)) $name = 'Guest';
$query = mysql_query("select count(*) FROM 'session' where 'id_session' like '".$id."'");
$otvet = mysql_fetch_array($query);
if ($otvet['count(*)'] == 1)
{
$query = mysql_query("UPDATE 'session' SET 'date' = NOW(), 'user' = '".$name."' WHERE 'id_session' = '".$id."' LIMIT 1 ;");
}
else
{
$query = mysql_query("INSERT INTO 'session' ( 'id_session' , 'user' , 'date' )
VALUES ('".$id."', '".$name."', NOW());");
}
$query = mysql_query("DELETE FROM 'session' WHERE date < NOW( ) - INTERVAL '3' MINUTE LIMIT 1");
?>
|
Все работает... | |
|
|
|
|
|
|
|
для: RV
(07.06.2005 в 18:23)
| |
<?
session_start();
$client_ip = $_SERVER['REMOTE_ADDR'];
$client_br = $_SERVER['HTTP_USER_AGENT'];
if ($_SESSION['set'] === "true") // проверяем установлена ли ранее сессия
{
if (($client_ip === $_SESSION['client_ip']) AND ($client_br === $_SESSION['client_br'])) // если установлена то проверяем правильная ли она, т.е. не сделал ли ее юзер
{
echo "продолжаем сессию";
}
else
{
session_destroy(); // сессия кривая, наверно юзер хакер
echo "сессия убита";
}
}
else // если сессия не стоит, то начинаем
{
// проверяем куки, сверяемся с бд, если юзер опознан, то
{
if (update($users_array['login']) === true) // обновляем в бд время последнего посещения
{
session_destroy();
session_start(); // начинаем новую сессию и заводим переменные
$_SESSION['client_ip'] = $client_ip;
$_SESSION['client_br'] = $client_br;
$_SESION['set'] = "true";
}
else
{
echo "Ошибка обновления даты";
}
}
else
{
session_destroy();
echo "Юзер гость сессия уничтожена";
}
}
?>
|
А почему используеться такая проверка ? (update($users_array['login']) === true)
Мне казалось надо (update($users_array['login']) == true) или можно справить на
(if(update($users_array['login']))) ведь true булево значение... | |
|
|
|
|
|
|
|
для: RV
(07.06.2005 в 18:23)
| |
<?
if(session_start()) print 'Сессия успешно!!<br>';
if (empty($a) or empty($b))
{
if ($_SESSION['a'] = "Это " AND $_SESSION['b'] = "Сессия") print 'Переменные зарегистрированы';
print $_SESSION['a'].$_SESSION['b'];
}
else
{
if(session_destroy()) print 'Сессия успешно destroy!!';
unset($_SESSION['a']);
unset($_SESSION['b']);
print $_SESSION['a'].$_SESSION['b'];
}
?>
|
Странно, но у меня все ок. | |
|
|
|
|
|
|
|
для: cheops
(07.06.2005 в 18:06)
| |
session_start();
$num = "f";
if ($num === "f")
{
session_unregister(session_id());
session_destroy();
}
echo "<a href = ляля>линк</a>";
?>
|
и так тоже показывает и наоборот
session_destroy();
session_unregister(session_id());
и так тоже нет | |
|
|
|
|