好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php SESSION类(购物车类) - php类库

php SESSION类(购物车类)

关于 SESSION 在 php 中的应用是必不要少的,最重要的功能之一,SESSION 在网络应用中,称为[会话],我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SESSION 值不会丢失,而是在整个用户会话中一直存活下去。通俗一点讲,就是当用户A上网时,会创建一个ID(a)值进行保存下来,如果你的ID(A)值没有进行注销,下次上网时,这个网站还会记得你的ID(A)值,这个时候就可以在网上进行调用你的ID(A)值了,比如欢迎您ID(A)值再一次访问。

关于在 PHP 中应用 SESSION 值是很简单的,只要在顶端提前输入 session_start() 开始会话即可,下面就可以进行使用 SESSION 了,这只是小网站的应用方法,实际上,SESSION 自身还有许多属性,比如 SESSION周期,调用SESSION,SESSION数据有效期,SESSION保存,SESSION注销等等,如果有了这些属性,看起来才算是一个比较规范的SESSION应用会话。

下面是一个完整的 Session 类,整合了 Session 最基本的属性值,其中,打开,关闭与清理是符合php编程规范的,这也是一个很好的习惯。小小的说明一下,如果网站不是大量使用 Session 类,基本上就没必要使用 SESSION 类了。

 <?php  /**   * 文件描述 Session类   * =================================================================   * 文件名称 session.class.php   * -----------------------------------------------------------------   * 适用环境: PHP5.2.x / mysql 5.0.x   * -----------------------------------------------------------------   * 作 者 04ie。com   * -----------------------------------------------------------------   * 创建时间 2010-2-1   * =================================================================   */   class  Session  {  /**   * session默认有效时间   * @access public   * @var ineger $_expiry   */   public   $_expiry  = 3600;  /**   * 有效域名   * @access public   * @var string $_domain   */   public   $_domain  =  '.phpfamily.cn' ;  //初始化   public   function  __construct()  {  ini_set ( 'session.use_trans_id' , 0);  ini_set ( 'session.gc_maxlifetime' ,  $this ->_expiry);  ini_set ( 'session.use_cookie' , 1);  ini_set ( 'session.cookie_path' ,  '/' );  ini_set ( 'session.cookie_domain' ,  $this ->_domain);  session_module_name( 'user' );  session_set_save_handler(  array (& $this ,  'open' ),  array (& $this ,  'close' ),  array (& $this ,  'read' ),  array (& $this ,  'write' ),  array (& $this ,  'destroy' ),  array (& $this ,  'gc' )  );  session_start();  }  /**   * 打开session   * @access public   * @param string $savePath   * @param string $sName   * @return true   */   public   function  open( $savePath ,  $sName )  {  $this ->_conn = mysql_connect( 'localhost' ,  'root' ,  '' );  mysql_select_db( 'databases' );  mysql_query( 'SET NAMES "utf8"' );  return  true;  }  /**   * 关闭session   * @access public   * @return bool   */   public   function  close()  {  return  mysql_close( $this ->_conn);  }  /**   * 读取session   * @access public   * @param string $sid sessionID   * @return mixed   */   public   function  read( $sid )  {  $sql  =  "SELECT data FROM sessions WHERE sessionid='%s'" ;  $sql  = sprintf( $sql ,  $sid );  $res  = mysql_query( $sql ,  $this ->_conn);  $row  = mysql_fetch_assoc( $res );  return  ! $row  ? null :  $row [ 'data' ];  }  /**   * 写入session   * @access public   * @param string $sid sessionID   * @param string $data serialize序列化后的session内容   * @return   */   public   function  write( $sid ,  $data )  {  $expiry  = time() +  $this ->_expiry;  $sql  = "REPLACE INTO sessions (sessionid,expiratio  n,data) VALUES ( '%s' ,  '%d' ,  '%s' )";  $sql  = sprintf( $sql ,  $sid ,  $expiry ,  $data );  mysql_query( $sql ,  $this ->_conn);  return  true;  }  /**   * 销毁session   * @access public   * @param string $sid sessionID   * @return   */   public   function  destroy( $sid )  {  $sql  =  "DELETE FROM sessions WHERE sessionid='%s'" ;  $sql  = sprintf( $sql ,  $sid );  mysql_query( $sql ,  $this ->_conn);  return  true;  }  /**   * 清理过期session   * @access public   * @param integer $time   * @return   */   public   function  gc( $time  = 0)  {  $sql  =  "DELETE FROM sessions WHERE expiration < '%d'" ;  $sql  = sprintf( $sql , time());  mysql_query( $sql ,  $this ->_conn);  mysql_query( 'OPTIMIZE TABLE sessions' );  return  true;  }    

查看更多关于php SESSION类(购物车类) - php类库的详细内容...

  阅读:38次