php将权限写入session,php 一直报session写入失败

Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: tcp://127.0.0.1:6379) in /var/www/html/php/libs/util/Session.php on line 43

b3543bc1c9689770c960f4cbe953eb70.png

问题描述

我的代码写入session 的时候一直报这个问题, 环境是windows10 ubuntu 子系统,session 写入的位置是 memcache 6379 端口,扩展都开启了,有大神能解答一下这是什么问题吗?

问题出现的环境背景及自己尝试过哪些方法

相关代码

class Session {

// single ton

private static $session_handler_;

public static function Init() {

if (!isset(self::$session_handler_))

self::$session_handler_ = new Session();

}

// 阻止用户复制对象实例

public function __clone() {

trigger_error('Clone Session is not allowed.', E_USER_ERROR);

}

private function __construct() {

session_set_save_handler(array($this, "Open"),

array($this, "Close"),

array($this, "Read"),

array($this, "Write"),

array($this, "Destroy"),

array($this, "Gc"));

// for web user

$session_id = Cookie::Get(SESSIONID);

/* length of session id

128-bit digest (MD5)

4 bits/char: 32 char SID

5 bits/char: 26 char SID

6 bits/char: 22 char SID

160-bit digest (SHA-1)

4 bits/char: 40 char SID

5 bits/char: 32 char SID

6 bits/char: 27 char SID

*/

if (!empty($session_id) && 26 == strlen($session_id))

session_id($session_id);

session_start();

}

public function __destruct() {

session_write_close();

}

public function Open($save_path, $session_name) {

return true;

}

public function Close() {

return true;

}

public function Read($session_id) {

$key = SESSION_PREFIX . $session_id;

$memcached_client_ = SessionMemCachedClient::GetInstance();

return (string)$memcached_client_->get($key);

}

public function Write($session_id, $data) {

$key = SESSION_PREFIX . $session_id;

$memcached_client_ = SessionMemCachedClient::GetInstance();

if ($data)

return $memcached_client_->set($key, $data, SESSION_EXPIRE_TIME);

return true;

}

public function Destroy($session_id) {

$key = SESSION_PREFIX . $session_id;

$memcached_client_ = SessionMemCachedClient::GetInstance();

return $memcached_client_->delete($key);

}

public function Gc($maxlifetime) {

return true;

}

}

Session::Init();

你期待的结果是什么?实际看到的错误信息又是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值