>  기사  >  php教程  >  php session自定义处理

php session自定义处理

PHP中文网
PHP中文网원래의
2016-05-25 17:06:34945검색

PHP代码

session.gc_probability = 1 // 默认是1 ,越大越好
session.gc_divisor = 100 // 默认是100,越小越好
// 默认是一百次请求调用一次gc 。session.gc_probability相当于分子,session.gc_divisor相当于分母。如果想每次都调用gc 两个改成一样就可以了
session.gc_maxlifetime = 30 // session生存时间
<?php
function session_open($session_path, $session_name)
{
    mysql_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;root&#39;);
    mysql_select_db(&#39;demo&#39;);
    mysql_query("SET NAMES utf8");
} 
function session_close()
{
    return true;
} 
function session_read($SID)
{
    $query = "SELECT value FROM session where SID= &#39;$SID&#39; AND expiration >" . time();
    $result = mysql_query($query);
    if (mysql_num_rows($result))
    {
        $row = mysql_fetch_assoc($result);
        $value = $row[&#39;value&#39;];
        return $value;
    } 
    else
    {
        return false;
    } 
} 
function session_write($SID, $value)
{
    $lifetime = get_cfg_var("session.gc_maxlifetime");
    $expiration = time() + $lifetime;
    $query = "INSERT INTO session VALUES(&#39;$SID&#39;, &#39;$expiration&#39;, &#39;$value&#39;)";
    $result = mysql_query($query);
 
    if (!$result)
    {
        $query = "UPDATE session SET expiration = &#39;$expiration&#39;, value = &#39;$value&#39; WHERE SID = &#39;$SID&#39; AND expiration >" . time();
        $result = mysql_query($query);
    } 
} 
function sessionDestroy($SID)
{
    $query = "DELETE FROM session WHERE SID = &#39;$SID&#39;";
    $result = mysql_query($query);
} 
function session_gc()
{
    $query = "DELETE FROM session WHERE expiration <" . time();
    $result = mysql_query($query);
    echo mysql_affected_rows();
} 
session_set_save_handler("session_open", "session_close", "session_read", "session_write", "sessionDestroy", "session_gc");
session_start();
?>

                   

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.