सेशन सेव हैंडलर सेट करना विफल रहता है:
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")
क्योंकि आप जिन कॉलबैक के लिए पंजीकरण करना चाहते हैं, वे मौजूद नहीं हैं:
var_dump(is_callable("sess_open")); # FALSE
ऐसा इसलिए है क्योंकि आपके ऑब्जेक्ट विधियों को कॉलबैक के रूप में ठीक से पंजीकृत होने की आवश्यकता है। एक ऑब्जेक्ट विधि कॉलबैक दो तत्वों के साथ एक सरणी के रूप में लिखा जाता है, पहला ऑब्जेक्ट होता है, दूसरा मेथडनाम का एक स्ट्रिंग होता है। PHP नेट से उदाहरण जो आपके जैसा है:
$handler = new FileSessionHandler();
session_set_save_handler(
array($handler, 'open'),
array($handler, 'close'),
array($handler, 'read'),
array($handler, 'write'),
array($handler, 'destroy'),
array($handler, 'gc')
);
जैसा कि आप देख सकते हैं, प्रत्येक विधि को पहले तत्व के साथ एकल सरणी के रूप में लिखा जाता है $handler
हमेशा।
कक्षा के भीतर से आप $this
. का उपयोग कर सकते हैं एक ही वस्तु को संदर्भित करने के लिए। लेकिन इससे पहले कि आप अपना खुद का पूरी तरह से लिखें, session_set_save_handler()कोड की जांच करें> पीएचपी मैनुअल पेज
इन्फोस, उदाहरणों और उपयोगकर्ता द्वारा योगदान किए गए नोट्स के लिए। आप अपने मामले के लिए इसे विभिन्न तरीकों से व्यवस्थित कर सकते हैं।