isset
आम तौर पर जांच करने के लिए करता है, तो पूर्वनिर्धारित चर वर्तमान में परिभाषित कर रहे हैं उचित तरीका है बस नीचे दिए गए कोड को कर रहे हैं, लेकिन ध्यान रखें कि यदि किसी कारण से सत्र अक्षम हैं, तो session_start() को अभी भी कॉल किया जाएगा जो $ _SESSION सरणी बनाने की अनुमति नहीं होने के कारण त्रुटियों और अनावश्यक डीबगिंग की ओर अग्रसर हो सकता है।
if(!isset($_SESSION)){session_start();}
आप अगर सत्र किसी कारण से अक्षम हैं देखने के लिए जाँच के लिए खाते में करना चाहते हैं, आप त्रुटि संदेश दबाने सकते, एक परीक्षण सत्र चर सेट, और फिर सत्यापित करें कि यह स्थापित किया गया था। यदि ऐसा नहीं है, तो आप अक्षम सत्रों के लिए प्रतिक्रिया में कोड कर सकते हैं। आप अपनी स्क्रिप्ट की शुरुआत में या उसके करीब यह सब करना चाहते हैं। तो जैसा कि एक उदाहरण (अलग ढंग से त्रुटि हैंडलिंग सेटिंग के आधार पर काम करता है):
if(!isset($_SESSION)){session_start();}
$_SESSION['valid'] = 'valid';
if($_SESSION['valid'] != 'valid')
{
//handle disabled sessions
}
हालांकि, अगर आप PHP संस्करण 5.4 या अधिक से अधिक, उपयोग कर रहे हैं
आप session_status() समारोह, के रूप में एक बेहतर विकल्प का उपयोग कर सकते यह सत्रों को अक्षम करने के लिए खाते हैं और जांच करता है कि कोई सत्र पहले से मौजूद है या नहीं।
if (session_status() === PHP_SESSION_NONE){session_start();}
नोट कि PHP_SESSION_NONE PHP द्वारा एक निरंतर सेट है और इसलिए उद्धरण में लिपटे होने की जरूरत नहीं है। यह पूर्णांक 1 का मूल्यांकन करता है, लेकिन यह एक निरंतर है जो विशेष रूप से जादू संख्याओं की आवश्यकता को खत्म करने के लिए सेट किया गया था, निरंतर के खिलाफ परीक्षण करने के लिए सबसे अच्छा।
PHP के लिए समाधान का उल्लेख करने के लिए धन्यवाद <5.4 – Houston
@ अच्छी तरह से, मैं आपको कहूंगा कि आपको या तो 5.4.16 में एक बग मिला है या अधिक संभावना है कि एक अजीब php/server config है। किसी भी तरह से अपने किनारे के मामलों को कोहनी करना अच्छा होता है: डी – Rooster