本篇內(nèi)容主要講解“php中session寫入失敗怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“php中session寫入失敗怎么解決”吧!
10年積累的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有南木林免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
php session寫入失敗是因?yàn)榘裺ession誤存在memcache里面了,其解決辦法就是把session存在redis里面,然后修改php的配置文件即可。
本文操作環(huán)境:windows10系統(tǒng)、PHP7.1版,DELL G3電腦
具體問題:
php session 寫入失敗怎么辦?
php 一直報(bào)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
問題描述
我的代碼寫入session 的時(shí)候一直報(bào)這個(gè)問題, 環(huán)境是windows10 ubuntu 子系統(tǒng),session 寫入的位置是 memcache 6379 端口,擴(kuò)展都開啟了,有大神能解答一下這是什么問題嗎?
問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法
相關(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ù)制對象實(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)找到問題所在了,我們現(xiàn)在是把session 存在memcache里面,memcache用的是6379端口, 但是之前我是把session存在redis里面,改了php的配置文件,我忘了這一點(diǎn),所以一直以為代碼有問題。
到此,相信大家對“php中session寫入失敗怎么解決”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!