• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php自定义session示例分享_php实例

php 搞代码 4年前 (2022-01-25) 17次浏览 已收录 0个评论

下面为session类的代码

<?php<BR>class session<BR>{<BR> static function init()<BR> {<BR>  session_set_save_handler(<BR>    array("session","open"),<BR>    array("session","close"),<BR>    array("session","read"),<BR>    array("session","write"),<BR>    array("session","destroy"),<BR>    array("session","gc")<BR>  );<BR> }<br><br> static function open($save_path,$session_name)<BR> {<BR>  echo "session opening!<br>";<BR>  /*global $db,$REMOTE_ADDR;<BR>   $rs = $db->Execute("select * from Sessions where SessionID='".session_id()."'");<BR>  $arry=$rs->FetchRow();<BR>  if( $rs && $arry)<BR>  {<BR>  $db->Execute("update Sessions set SessionLast=NOW() where SessionID='".session_id()."'");<BR>  }<BR>  else<BR>  {<BR>  $query = "insert into Sessions set SessionID='".session_id()."',SessionName='$REMOTE_ADDR',SessionLast='NOW()'";<BR>  //echo $query;<BR>  $db->Execute($query);<BR>  }*/<BR>  return true;<BR> }<BR> static function close()<BR> {<BR>  return(true);<BR> }<br><br> static function read($id)<BR> {<BR>  echo "session reading now!<br>";<BR>  global $db;<BR>  return true;<BR>  $timenow = strftime("%Y-%m-%d %H:%M:%S", time());<BR>  $query = "select SessionData from Sessions where SessionID='$id' and SessionLast > '$timenow'";<BR>  $rs = $db->Execute($query);<BR>  if(list($SessionData) = $rs->FetchRow())<BR>  {<BR>   //echo $SessionData;<BR>   return $SessionData;<BR>  }<BR>  else<BR>  {<BR>   return false;<BR>  }<BR> }<br><br> static function write($id,$sess_data)<BR> {<BR>  echo "session writing now!<br>";<BR>  global $db;<BR>  $rs = $db->Execute("select SessionID from Sessions where SessionID='$id'");<BR>  $num = $rs->RecordCount();<BR>  $unix_time = time()+MY_SESS_TIME;<BR>  //echo MY_SESS_TIME;<BR>  $dateleft = strftime("%Y-%m-%d %H:%M:%S", $unix_time);<BR>  if($num <= 0)<BR>  {<BR>   $sql = "insert into Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft', SessionID='".session_id()."'";<BR>  }<BR>  else<BR>  {<BR>   $sql = "update Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft' where SessionID='$id'";<BR>  }<BR>  $db->Execute($sql);<BR> }<br><br> static function destroy($id)<BR> {<BR>  echo "session destroying now!<br>";<BR>  global $db;<BR>  $sql = "DELETE FROM Sessions WHERE `SessionID` = '$id'";<BR>  $rs = $db->Execute($sql);<BR>  return $rs;<BR>  // $sess_file = "$sess_save_path<b style="color:transparent">(、本文来源gao@!dai!ma.com搞$$代^@码网*</b><i>搞gaodaima代码</i>/sess_$id";<BR>  //return(@unlink($sess_file));<BR> }<br><br> /*********************************************<BR>  * WARNING - You will need to implement some *<BR> * sort of garbage collection routine here. *<BR> *********************************************/<BR> static function gc($maxlifetime)<BR> {<BR>  echo "session maxlifetime now!<br>";<BR>  global $db;<BR>  $timenow = strftime("%Y-%m-%d %H:%M:%S", time());<BR>  $sql = "DELETE FROM `$table_sessions` WHERE `SessionLast` < '$timenow'";<BR>  return $sess_db->Execute($sql);<BR>  //echo "now gc!<br>";<BR>  return true;<BR> }<BR> // proceed to use sessions normally<BR>}<BR>

使用方法

include("session.class.php"); <BR>session::init(); <BR>session_start(); <BR>define("MY_SESS_TIME", 3600); //SESSION 生存时长 <BR>$_SESSION["test"] = "abcdef";<BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php自定义session示例分享_php实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址