Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сессии - клиент теряет номер сесси

2.5K
22 января 2003 года
gMix
10 / / 20.01.2003
такая проблемка, клиент теряет номер сесси,
номер это хранится в куках, время жизни кук поставлено уже на 80000 сек, но примерно раз в три часа IE бросает сессию(время жизни сессии тоже не маленькое), при это не важно работал ли клиент все эти три часа или не работал.
ТрансСид использовать в этом случае можно былобы но это очень не желательно.

Так вот господа, какие у вас будут мнения по этому поводу 8)
250
22 января 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by gMix
такая проблемка, клиент теряет номер сесси,
номер это хранится в куках, время жизни кук поставлено уже на 80000 сек, но примерно раз в три часа IE бросает сессию(время жизни сессии тоже не маленькое), при это не важно работал ли клиент все эти три часа или не работал.
ТрансСид использовать в этом случае можно былобы но это очень не желательно.

Так вот господа, какие у вас будут мнения по этому поводу 8)



1) что значит бросает ?
2) Покажи код

2.5K
23 января 2003 года
gMix
10 / / 20.01.2003
Цитата:
Originally posted by Joker


1) что значит бросает ?
2) Покажи код



1) при обращении к скрипту не всегда передаётся номер сесси лежащий в куках, либо куки дохнут раньше, либо я ничего не понимаю

2)Думаю что это не поможет, но если тебе надо.
да и настройки PHP (4.3.0)
[Session]
session.save_handler = files
session.save_path =c:\web\tmp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_dividend = 1000
session.gc_maxlifetime = 800000
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.entropy_length = 16
session.cache_limiter = nocache
session.cache_expire = 18000
session.use_trans_sid = 0

<?php
// Модуль поддержки сессий
GLOBAL $cfg;
require ( $cfg->Rmodule_path."auth.php");
class session_layer extends autentification
{
var $sesion_UID;
var $session_time=0;// 0-infinite
function oracle_connect()
{
GLOBAL $GLOBALS;
//коннект к ораклу
}
function check_session()// Организация сесси
{
#if(isset($username))
{GLOBAL $username;};
#if(isset($password))
{GLOBAL $password;};
session_start();
if (isset($_SESSION ['global_sql']))
{
$this->SQL_global_array = $_SESSION ['global_sql'];
}
if (!isset($_SESSION ['username']))
{
// echo "g rg $password.$username";
if((!isset($username))||(!isset($password)))
{
$this->loginus();
return(-4);
die();
}
else
{
echo 'Проверка регистрации

';
$_SESSION ['global_sql'] = $this->GetWorkSQL(0);
// echo 'Загрузка основных запросов.
';
flush();
$this->SQL_global_array = $_SESSION ['global_sql'];
$user_id=$this->Login_To_Oracle($username,$password);
if ($user_id!=-1)
{
if ($user_id<=-1)
{
switch ($user_id)
{
case -4:{echo 'Неизвестное имя пользователя, или неверный пароль!!
';break;}
case -2:{echo 'Учётная запись пользователя ('.$username.') Заблокирована!!
';break;}
case -3:{echo 'Рабочее место заблокировано!!
';break;}
case -1:{echo 'Работа с этого комьютера запрещена!!
';break;}
case -6:{echo 'Ошибка при обращении к базе даных!!
';break;}
default:{echo 'Ошибка регистрации!!
';break;}

}
$this->Write2Log("access",'IP='.$_SERVER ['REMOTE_ADDR'].' Access Denied User='.$username.' pass=********');
//echo 'Учётная запись пользователя ('.$username.') Заблокирована!!
';
session_destroy();
echo '<meta http-equiv="refresh" content="4; URL=./.">';
return(-2);
}
else
{
echo 'Регистрация пройдена';
$this->Write2Log('access','IP='.$_SERVER ['REMOTE_ADDR'].' Access Granted User='.$username);
$_SESSION ['user_rights']=$this->GetWorkRigths($user_id);
$_SESSION ['groups']=$this->GetUserGroup($user_id);
$_SESSION ['forms']=$this->GetForms($user_id);
$_SESSION ['username'] = $username;
$_SESSION ['password'] = $password;
$_SESSION ['user_id'] = $user_id;
$_SESSION ['user_group_id'] = $this->user_group_id;
$_SESSION ['ISER_INFO']=$this->user_info;
$_SESSION ['curent_form']="";
$_SESSION ['curent_form_id']=-1;
$_SESSION ['user_session_data']=$this->UserSessionData;
// $_SESSION ['ORACLE']=$this->myoracle;

// echo '
';
echo '<meta http-equiv="refresh" content="1; URL=./.">';
}
return ($_SESSION ['user_id']);
}
else
{
echo 'Неизвестное имя пользователя, или неверный пароль!!
';
$this->Write2Log('access','IP='.$_SERVER ['REMOTE_ADDR'].' Access Denied User='.$username.' pass='.$password);
session_destroy();

2.5K
23 января 2003 года
gMix
10 / / 20.01.2003
echo '<meta http-equiv="refresh" content="4; URL=./.">';
return(-4);
}


}
}
else //повторная проверка при каждой загрузке
{
$user_id=$this->Login_To_Oracle($_SESSION ['username'], $_SESSION ['password']);
if ($user_id<0)
{
echo 'Учётная запись пользователя ('.$_SESSION ['username'].'/'.$user_id.') Заблокирована!!
';
session_destroy();
echo '<meta http-equiv="refresh" content="4; URL=./.">';
return(-2);

}

// $this->user_group=$_SESSION [''];
//$test=$_SESSION['ISER_INFO'];
$ips=explode(".",$_SERVER ['REMOTE_ADDR']);
$ip=($ips[3].".".$ips[2].".".$ips[1].".".$ips[0]);

$this->user_info=$_SESSION['ISER_INFO'];
// echo $this->user_info["OTD_IP"];
if ($this->user_info["OTD_IP"]!=$ip){session_destroy();return (-99);echo '<meta http-equiv="refresh" content="0; URL=./.">';}
$this->SQL_global_array=$_SESSION ['global_sql'];
$this->User_Rights=$_SESSION ['user_rights'];
$this->user_name=$_SESSION ['username'];
$this->user_pass=$_SESSION ['password'];
$this->user_id=$user_id;
$this->Curent_form=$_SESSION ['curent_form'] ;
$this->Curent_form_id=$_SESSION ['curent_form_id'] ;
$this->Group_global_array =$_SESSION ['groups'] ;
$this->Form_global_array =$_SESSION ['forms'] ;
$this->UserSessionData=$_SESSION ['user_session_data'];
// if (isset($_SESSION["GLOBALS"])){$_SESSION["GLOBALS"]=$GLOBALS;}
if (isset( $_SESSION["form_sql"]))
{
$this->Form_SQL_global_array=$_SESSION["form_sql"];//$this->GetWorkSQL(0)
}
return($user_id);
}
}
function drop_session()
{
$this->Write2Log('access','LOGOUT='.$_SESSION ['username']);
session_unset();
session_destroy();
// OCILogOff ($this->myoracle);
//OCILogOff ($_SESSION["ORACLE_SESSION"] );

echo '<meta http-equiv="refresh" content="0; URL=./.">';
}
function set_module($mod)
{
//echo $mod;
if (isset($this->Form_global_array[$mod]))
{
$mm=$this->Form_global_array[$mod];
//print_r($mm);
if (in_array($mm,$this->Form_global_array))
{
$_SESSION ['curent_form'] =$mod;
$this->Form_SQL_global_array=$this->GetWorkSQL($this->Form_global_array[$mod]["FORM_ID"]);
$_SESSION["form_sql"]=$this->Form_SQL_global_array;
$this->Curent_form=$_SESSION ['curent_form'];
$this->Curent_form_id=$this->Form_global_array[$mod]["FORM_ID"];
$this->Curent_formPath=$this->Form_global_array[$mod]["FORM_PATH"];
$this->Curent_formName=$this->Form_global_array[$mod]["FORM_NAME"];
}
}
}
function get_user_vars($var_name)
{
if (isset($this->UserSessionData[$var_name]))
{
return $this->UserSessionData[$var_name];
}
else
{
return (-1);
}
}
function set_user_vars($var_name,$var_value)
{
if ($this->get_user_vars($var_name)==-1)
{
$this->UserSessionData=$this->UserSessionData+array($var_name=>$var_value);
$_SESSION ['user_session_data']=$this->UserSessionData;
}
else
{
array_splice ($this->UserSessionData,$var_name);
$this->UserSessionData=$this->UserSessionData+array($var_name=>$var_value);
//$this->UserSessionData[$var_name]=$var_value;
$_SESSION ['user_session_data']=$this->UserSessionData;
}
}
function del_user_vars($var_name)
{
$br__=array();
$br__=$this->UserSessionData;
if (array_key_exists($var_name,$br__))
{
$tmp_ar=array();
while (list ($key, $val) = each ($this->UserSessionData))
{
if ($key!=$var_name)
{
//array_push($tmp_ar,array($key => $val));
$tmp_ar=$tmp_ar+array($key => $val);
}
}
$this->UserSessionData=$tmp_ar;
$tmp_ar=null;
}
// array_splice ($this->UserSessionData,$var_name);
$_SESSION ['user_session_data']=$this->UserSessionData;
}
function clear_user_vars()
{
$this->UserSessionData=array();
$_SESSION ['user_session_data']=$this->UserSessionData;
}

}


?>
250
23 января 2003 года
Joker
1.4K / / 20.02.2000
дя я весь код то не хотел хотел самое главное глянуть..
1) У тебя стоит чтобе сессия умирала после закрытия браузера..
2) А сколько тебе надо чтобы она жида 7
И после того как сессия слитела если обновить страничку, сессия уже дохлая ?
2.5K
24 января 2003 года
gMix
10 / / 20.01.2003
Цитата:
Originally posted by Joker
дя я весь код то не хотел хотел самое главное глянуть..
1) У тебя стоит чтобе сессия умирала после закрытия браузера..
2) А сколько тебе надо чтобы она жида 7
И после того как сессия слитела если обновить страничку, сессия уже дохлая ?



1)Это вынужденная мера.
2)Нужно чтобы жила хотябы часа три.
(1. прошла регистрация2.чел работает 3.и при очередном выполнении скрипта его бросает на страницу регистрации)
Вообщем у меня сильные подозрения на то что Апачь не корректно работает по Win2k

250
24 января 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by gMix


1)Это вынужденная мера.
2)Нужно чтобы жила хотябы часа три.
(1. прошла регистрация2.чел работает 3.и при очередном выполнении скрипта его бросает на страницу регистрации)
Вообщем у меня сильные подозрения на то что Апачь не корректно работает по Win2k


Почти уверен что это глюк оси юзера(т.е W2k Pro раббота с куками), и почти уверен только у этих пользовтелей этот глюк ?(проверь)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог