PHP Session入库【练习】

<?php 
   function connect(){
      $dsn=[
         'localhost'=> '127.0.0.1',
         'username' => 'root',
          'password' => 'root',
          'charset'  => 'utf-8',
          'dbname'   => "ten",
       ];
      $localhost=$dsn['localhost'];
      $username=$dsn['username'];
      $password=$dsn['password'];
      $dbname=$dsn['dbname'];
      $mysqli = new mysqli("$localhost","$username","$password","$dbname");
       if ($mysqli->connect_error) {
           die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
       }
      $charset=$dsn['charset'];
       $mysqli->query("set names $charset");
       return $mysqli;
    }



   function sess_open(){
       //echo __FUNCTION__."\r\n";
      connect();
   }

   function sess_close(){
     //echo __FUNCTION__."\r\n";
   }

   function sess_read($sess_id){
    // echo __FUNCTION__."\r\n";
     $mysql=connect();
     $sql = "select sess_data from `session` where sess_id = '$sess_id'";
     $result = $mysql->query($sql);  // $link 可以自己找到,或可以声明为全局变量
     if($rows = mysqli_fetch_assoc($result)){
       return $rows['sess_data'];
     }else{
       return '';
     }
   }

   function sess_write($sess_id, $sess_data){
     //echo __FUNCTION__."\r\n";
     $mysql=connect();
     //当前 session 存在则更新 sess_data
     //获得时间戳,mysql函数:unix_timestamp(); 
     //获得时间戳,php函数:time(); 
     $sql = "replace into `session` values('$sess_id', '$sess_data', now())";
     //on duplicate key update sess_data = '$sess_data',times = now()";  //这是为了gc()
     return $mysql->query($sql);
   }

   function sess_destroy($sess_id){
     //echo __FUNCTION__."\r\n";
     $mysql=connect();
     $sql = "delete from `session` where sess_id = '$sess_id'"; 
     return $mysql->query($sql);
   }
   function sess_gc(){
    // echo __FUNCTION__."\r\n";
   }

   session_set_save_handler(
     'sess_open', 
     'sess_close',
     'sess_read',
     'sess_write',
     'sess_destroy',
     'sess_gc'
   );



//ibraries/session.inc.php at line 79  // session.save_handler 
// ini_set('session.save_handler', 'files');
// session_save_path("D:\web\session");
session_start();
if (!empty($path)) {
    session_save_path($path);
}
$_SESSION['name']=张三;
var_dump($_SESSION); 

张三已存入数据库


关于PHP7.0 开启session     session_start();报错:Fatal error: session_start(): Failed to initialize storage module: files( 致命错误 :session_start():未能初始化存储模块)最后也没能解决,如果好心人看到请给我留个言该怎么做,谢谢!谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值