📄 session.php
字号:
$_SESSION['__HTTP_Session_Idle'] = $time - time();
}
}
/**
* Returns the time up to the session is valid
*
* @static
* @access public
* @return integer Time when the session idles
*/
function sessionValidThru()
{
if (!isset($_SESSION['__HTTP_Session_Idle_TS']) || !isset($GLOBALS['__HTTP_Session_Idle'])) {
return 0;
} else {
return $_SESSION['__HTTP_Session_Idle_TS'] + $_SESSION['__HTTP_Session_Idle'];
}
}
/**
* Check if session is expired
*
* @static
* @access public
* @return boolean
*/
function isExpired()
{
if (isset($_SESSION['__HTTP_Session_Expire_TS']) && $_SESSION['__HTTP_Session_Expire_TS'] < time()) {
return true;
} else {
return false;
}
}
/**
* Check if session is idle
*
* @static
* @access public
* @return boolean
*/
function isIdle()
{
if (isset($_SESSION['__HTTP_Session_Idle_TS']) && (($_SESSION['__HTTP_Session_Idle_TS'] + $_SESSION['__HTTP_Session_Idle']) < time())) {
return true;
} else {
return false;
}
}
/**
* Updates the idletime
*
* @static
* @access public
* @return void
*/
function updateIdle()
{
$_SESSION['__HTTP_Session_Idle_TS'] = time();
}
/**
* If optional parameter is specified it indicates
* whether the module will use cookies to store
* the session id on the client side
*
* It returns the previous value of this property
*
* @static
* @access public
* @param boolean $useCookies If specified it will replace the previous value
* of this property
* @return boolean The previous value of the property
*/
function useCookies($useCookies = null)
{
$return = ini_get('session.use_cookies') ? true : false;
if (isset($useCookies)) {
ini_set('session.use_cookies', $useCookies ? 1 : 0);
}
return $return;
}
/**
* Gets a value indicating whether the session
* was created with the current request
*
* You MUST call this method only after you have started
* the session with the HTTP_Session::start() method.
*
* @static
* @access public
* @return boolean true if the session was created
* with the current request, false otherwise
*/
function isNew()
{
// The best way to check if a session is new is to check
// for existence of a session data storage
// with the current session id, but this is impossible
// with the default PHP module wich is 'files'.
// So we need to emulate it.
return !isset($_SESSION['__HTTP_Session_Info']) ||
$_SESSION['__HTTP_Session_Info'] == HTTP_SESSION_STARTED;
}
/**
* Register variable with the current session
*
* @static
* @access public
* @param string $name Name of a global variable
* @return void
* @see session_register()
*/
function register($name)
{
session_register($name);
}
/**
* Unregister a variable from the current session
*
* @static
* @access public
* @param string $name Name of a global variable
* @return void
* @see session_unregister()
*/
function unregister($name)
{
session_unregister($name);
}
/**
* Returns session variable
*
* @static
* @access public
* @param string $name Name of a variable
* @param mixed $default Default value of a variable if not set
* @return mixed Value of a variable
*/
function &get($name, $default = null)
{
if (!isset($_SESSION[$name]) && isset($default)) {
$_SESSION[$name] = $default;
}
return $_SESSION[$name];
}
/**
* Sets session variable
*
* @access public
* @param string $name Name of a variable
* @param mixed $value Value of a variable
* @return mixed Old value of a variable
*/
function set($name, $value)
{
$return = @$_SESSION[$name];
if (null === $value) {
unset($_SESSION[$name]);
} else {
$_SESSION[$name] = $value;
}
return $return;
}
/**
* Returns local variable of a script
*
* Two scripts can have local variables with the same names
*
* @static
* @access public
* @param string $name Name of a variable
* @param mixed $default Default value of a variable if not set
* @return mixed Value of a local variable
*/
function &getLocal($name, $default = null)
{
$local = md5(HTTP_Session::localName());
if (!is_array($_SESSION[$local])) {
$_SESSION[$local] = array();
}
if (!isset($_SESSION[$local][$name]) && isset($default)) {
$_SESSION[$local][$name] = $default;
}
return $_SESSION[$local][$name];
}
/**
* Sets local variable of a script.
* Two scripts can have local variables with the same names.
*
* @static
* @access public
* @param string $name Name of a local variable
* @param mixed $value Value of a local variable
* @return mixed Old value of a local variable
*/
function setLocal($name, $value)
{
$local = md5(HTTP_Session::localName());
if (!is_array($_SESSION[$local])) {
$_SESSION[$local] = array();
}
$return = $_SESSION[$local][$name];
if (null === $value) {
unset($_SESSION[$local][$name]);
} else {
$_SESSION[$local][$name] = $value;
}
return $return;
}
/**
* Sets new local name
*
* @static
* @access public
* @param string New local name
* @return string Previous local name
*/
function localName($name = null)
{
$return = @$GLOBALS['__HTTP_Session_Localname'];
if (!empty($name)) {
$GLOBALS['__HTTP_Session_Localname'] = $name;
}
return $return;
}
/**
*
* @static
* @access private
* @return void
*/
function _init()
{
// Disable auto-start of a sesion
ini_set('session.auto_start', 0);
// Set local name equal to the current script name
HTTP_Session::localName($_SERVER['SCRIPT_NAME']);
}
/**
* If optional parameter is specified it indicates
* whether the session id will automatically be appended to
* all links
*
* It returns the previous value of this property
*
* @static
* @access public
* @param boolean $useTransSID If specified it will replace the previous value
* of this property
* @return boolean The previous value of the property
*/
function useTransSID($useTransSID = null)
{
$return = ini_get('session.use_trans_sid') ? true : false;
if (isset($useTransSID)) {
ini_set('session.use_trans_sid', $useTransSID ? 1 : 0);
}
return $return;
}
/**
* If optional parameter is specified it determines the number of seconds
* after which session data will be seen as 'garbage' and cleaned up
*
* It returns the previous value of this property
*
* @static
* @access public
* @param boolean $gcMaxLifetime If specified it will replace the previous value
* of this property
* @return boolean The previous value of the property
*/
function setGcMaxLifetime($gcMaxLifetime = null)
{
$return = ini_get('session.gc_maxlifetime');
if (isset($gcMaxLifetime) && is_int($gcMaxLifetime) && $gcMaxLifetime >= 1) {
ini_set('session.gc_maxlifetime', $gcMaxLifetime);
}
return $return;
}
/**
* If optional parameter is specified it determines the
* probability that the gc (garbage collection) routine is started
* and session data is cleaned up
*
* It returns the previous value of this property
*
* @static
* @access public
* @param boolean $gcProbability If specified it will replace the previous value
* of this property
* @return boolean The previous value of the property
*/
function setGcProbability($gcProbability = null)
{
$return = ini_get('session.gc_probability');
if (isset($gcProbability) && is_int($gcProbability) && $gcProbability >= 1 && $gcProbability <= 100) {
ini_set('session.gc_probability', $gcProbability);
}
return $return;
}
}
HTTP_Session::_init();
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -