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 संस्करण या उससे ऊपर में चलता है।