Heim  >  Artikel  >  Backend-Entwicklung  >  Mysql存取session实例_PHP教程

Mysql存取session实例_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:34:56924Durchsuche

files:
common/Common.config.php
include/session.inc.php
session_test.php
get_session_test.php
get_session_test2.php


Common.config.php
  
/*
* Common config
* By 恋太后天
*/


/*
* Database config
*/
define( "DBTYPE", "mysql" );
$database = array
(
    "mysql" => array
    (
        "default" => array
        (
              "host"     => "localhost",
              "user"     => "root",
              "password" => "",
              "dbname"   => ""
        ),
        "session" => array
        (
              "host"     => "localhost",
              "user"     => "session",
              "password" => "session",
              "dbname"   => "sessions"
        )
    )
);

?>


session.inc.php

 
//使用mysql存放session 函数表
// by 恋太后天 2005-4-28

if (!isset($include_path)) $include_path = ;

if (!is_array($database))
{
    include ($include_path."common/Common.config.php");
}

$DBsess      = $database[DBTYPE]["session"];
$DBsess_link = mysql_connect($DBsess["host"], $DBsess["user"], $DBsess["password"])
               or die ("Error:Can not connect to Mysql server.");

$SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

function sess_open($path, $name)
{
    return true;
}

function sess_close()
{
    return true;
}

function sess_read($id)
{
    global $DBsess , $DBsess_link;
    mysql_select_db($DBsess["dbname"]);
    $now = time();
    $result = mysql_query("SELECT `data` FROM `sessions`
                           WHERE `id`= $id AND `expiry_time` > $now", $DBsess_link);   
    if (list($data) = mysql_fetch_row($result))
    {  
       return $data;  
    }  
    return false;
}

function sess_write($id, $data)
{
    global $DBsess , $DBsess_link, $SESS_LIFE;
    mysql_select_db($DBsess["dbname"]);

    $expiry_time = time() + $SESS_LIFE;

    if ( !get_magic_quotes_gpc() )
    {
        $data = addslashes($data);
    }

    $now = time();

    $result = mysql_query("INSERT into `sessions` (`id`, `expiry_time`,  `data`)", $DBsess_link);

    if ( !$result )
    {
        $result = mysql_query("UPDATE `sessions` SET `data`=$data, `expiry_time`=$expiry_time
                               WHERE `id` = $id AND `expiry_time` > $now", $DBsess_link);
    }

    return $result;
}

function sess_destroy($id)
{
    global $DBsess , $DBsess_link;
    mysql_select_db($DBsess["dbname"]);
    $query = mysql_query("DELETE FROM `session` WHERE `id`=$id");
    return $query;
}

function sess_gc($maxlifetime)
{
    global $DBsess , $DBsess_link; 
    $query = mysql_query("DELETE FROM `sessions` WHERE `expiry_time`     return mysql_affected_rows($DBsess_link);  

}

session_module_name();
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");

?>


session_test.php
  
// test for using session
include ("common/Common.config.php");
include ("include/session.inc.php");

session_start();

$_SESSION["abc"] = "A: I will be back!";
$_SESSION["meto"] = "B: Me too ";
echo "click me";

?>

get_session_test.php


  
// test for using session
include ("common/Common.config.php");
include ("include/session.inc.php");

session_start();
/*
* www.knowsky.com
*/
$_SESSION["c"] = "
C: I will follow U. ^0^!";
print($_SESSION["abc"]);
print("
");
print($_SESSION["meto"]);
echo "
".
     "click again";

?>


get_session_test2.php

  
//get_session_test2.php
// test for using session
include ("common/Common.config.php");
include ("include/session.inc.php");

session_start();
print($_SESSION["c"]);
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508383.htmlTechArticlefiles: common/Common.config.php include/session.inc.php session_test.php get_session_test.php get_session_test2.php Common.config.php ?php /* * Common config * By 恋太后天 */ /...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn