PHP में, हम सत्र शुरू करने के लिए session_start() एक इनबिल्ट फ़ंक्शन का उपयोग करते हैं। लेकिन एक PHP स्क्रिप्ट में हमें जिस समस्या का सामना करना पड़ता है वह यह है कि यदि हम इसे एक से अधिक बार निष्पादित करते हैं तो यह एक त्रुटि उत्पन्न करता है। तो यहां हम सीखेंगे कि session_start() फंक्शन को दो बार कॉल किए बिना कैसे सेशन शुरू हुआ या नहीं।
इस समस्या को हल करने के लिए दो तरीके अपनाए जा सकते हैं।
नीचे PHP 5.4.0 संस्करण के लिए।
उदाहरण
<?php if(session_id() == ''){ session_start(); } ?>
स्पष्टीकरण
यदि सत्र शुरू नहीं हुआ है तो ऊपर दिया गया यह कोड हमेशा PHP स्क्रिप्ट में सत्र शुरू करेगा।
दूसरी विधि में, हम session_status() फ़ंक्शन का उपयोग कर सकते हैं, जो वर्तमान सत्र की स्थिति लौटाता है। यह फ़ंक्शन तीन पूर्णांक मान लौटा सकता है, जो सभी पूर्वनिर्धारित स्थिरांक हैं। ये हैं:
- 0 - PHP_SESSION_DISABLED:सत्र वर्तमान में अक्षम हैं।
- 1 - PHP_SESSION_NONE:सत्र सक्षम हैं, लेकिन कोई सत्र प्रारंभ नहीं किया गया है।
- 2 - PHP_SESSION_ACTIVE:सत्र सक्षम हैं और एक सत्र शुरू हो गया है।
उदाहरण:
<?php if (session_status() == PHP_SESSION_NONE) { session_start(); } ?>
स्पष्टीकरण
उपरोक्त कोड जांचता है कि सत्र शुरू हुआ या नहीं, अगर शुरू नहीं हुआ तो यह PHP स्क्रिप्ट में सत्र शुरू करेगा।
नोट
session_status() फ़ंक्शन केवल PHP 5.4.0 संस्करण या इसके बाद के संस्करण में चलता है।