PHP用mysql数据库存储session的代码
|
隐患一:如果客户端机器的cookie一旦因病毒而失效了,那么session也就相当于没有了。 die(); } if(!mysql_select_db($gb_DBname,$SESS_DBH)){ echo " die(); } return true; } function sess_close(){ return true; } function sess_read($key){ global $SESS_DBH,$SESS_LIFE; $qry="select value from db_session where sesskey = '$key' and expiry > ".time(); $qid=mysql_query($qry,$SESS_DBH); if(list($value)=mysql_fetch_row($qid)){ return $value; } return false; } function sess_write($key,$val){ global $SESS_DBH,$SESS_LIFE; $expiry=time()+$SESS_LIFE; $value=$val; $qry="insert into db_session values('$key',$expiry,'$value')"; $qid=mysql_query($qry,$SESS_DBH); if(!$qid){ $qry="update db_session set expiry=$expiry,value='$value' where sesskey='$key' and expiry >".time(); $qid=mysql_query($qry,$SESS_DBH); } return $qid; } function sess_destroy($key){ global $SESS_DBH; $qry="delete from db_session where sesskey = '$key'"; $qid=mysql_query($qry,$SESS_DBH); return $qid; } function sess_gc($maxlifetime){ global $SESS_DBH; $qry="delete from db_session where expiry < ".time(); $qid=mysql_query($qry,$SESS_DBH); return mysql_affected_rows($SESS_DBH); } session_module_name(); session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_gc"); ?> 4.建立测试文件。 在使用之前必须引用刚刚建立的session_mysql.php文件。 session_test.php PHP代码: <div class="codetitle"><a style="CURSOR: pointer" data="29032" class="copybut" id="copybut29032" onclick="doCopy('code29032')"> 代码如下:<div class="codebody" id="code29032"> <?php include ("session_mysql.php"); session_start(); $_SESSION['abc']= "A: I will be back!"; $_SESSION['meto']= "B: Me too "; $_SESSION['name']= "louis "; echo "<a href="get_session_test.php">click me"; ?> get_session_test.php <div class="codetitle"><a style="CURSOR: pointer" data="7005" class="copybut" id="copybut7005" onclick="doCopy('code7005')"> 代码如下:<div class="codebody" id="code7005"> <?php include ("session_mysql.php"); session_start(); echo $_SESSION['abc']; echo " "; echo $_SESSION['meto']; echo " "; echo $_SESSION['name']; $_SESSION['wq']="12e"; echo " <a href="get_session_test2.php">click again"; ?> get_session_test2.php <div class="codetitle"><a style="CURSOR: pointer" data="46526" class="copybut" id="copybut46526" onclick="doCopy('code46526')"> 代码如下:<div class="codebody" id="code46526"> <?php include ("session_mysql.php"); session_start(); echo $_SESSION['abc']; echo " "; echo $_SESSION['meto']; echo " "; echo $_SESSION['name']; echo " "; echo $_SESSION['wq']; //session_destroy();//用来销毁所有session的函数。 ?> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
