您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php中session寫(xiě)入失敗怎么解決”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“php中session寫(xiě)入失敗怎么解決”吧!
php session寫(xiě)入失敗是因?yàn)榘裺ession誤存在memcache里面了,其解決辦法就是把session存在redis里面,然后修改php的配置文件即可。
本文操作環(huán)境:windows10系統(tǒng)、PHP7.1版,DELL G3電腦
具體問(wèn)題:
php session 寫(xiě)入失敗怎么辦?
php 一直報(bào)session寫(xiě)入失敗
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
問(wèn)題描述
我的代碼寫(xiě)入session 的時(shí)候一直報(bào)這個(gè)問(wèn)題, 環(huán)境是windows10 ubuntu 子系統(tǒng),session 寫(xiě)入的位置是 memcache 6379 端口,擴(kuò)展都開(kāi)啟了,有大神能解答一下這是什么問(wèn)題嗎?
問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法
相關(guān)代碼
class Session { // single ton private static $session_handler_; public static function Init() { if (!isset(self::$session_handler_)) self::$session_handler_ = new Session(); } // 阻止用戶復(fù)制對(duì)象實(shí)例 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();
你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?
解決辦法:
已經(jīng)找到問(wèn)題所在了,我們現(xiàn)在是把session 存在memcache里面,memcache用的是6379端口, 但是之前我是把session存在redis里面,改了php的配置文件,我忘了這一點(diǎn),所以一直以為代碼有問(wèn)題。
到此,相信大家對(duì)“php中session寫(xiě)入失敗怎么解決”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。