Can I open/close a session in PHP multiple times (and if so what is going wrong)? -
तो मेरी लॉगिन प्रक्रिया कैसे काम करती है:
authenticate.php
sessionStart (); अगर (isset ($ _ सत्र) & amp; खाली! ($ _ सत्र ['LOCATION'])) {$ location = $ _SESSION ['LOCATION']; सेट नहीं ($ _ सत्र [ 'LOCATION']); } और {$ location = '//' $ _SERVER [ 'SERVER_NAME']; } Session_write_close (); sessionStart (); $ UserIsOnline = isset ($ _ सत्र ['आईडी']); session_write_close (); sessionStart (); अगर (! $ UserIsOnline) {// उपयोगकर्ता से डेटाबेस प्राप्त करें // उपयोगकर्ता का पासवर्ड मान्य करें $ _SESSION ['आईडी'] = $ उपयोगकर्ता- & gt; आईडी; $ _SESSION ['संयुक्त राष्ट्र'] = $ उपयोगकर्ता- & gt; संयुक्त राष्ट्र; // ... अधिक जानकारी} session_write_close (); हैडर ($ स्थान); बाहर जाएं();
सत्र का स्टार्ट
फ़ंक्शन:
यदि (session_id () == '') {session_name ('MyWebsite '); Session_set_cookie_params (86400, '/', $ _SERVER ['SERVER_NAME'], सच है, सच); session_start (); $ _SESSION ['LAST_ACTIVITY'] = समय (); $ _SESSION ['क्रिएट'] = समय (); }
फिर मेरी वेबसाइट के प्रत्येक पृष्ठ के शीर्ष पर:
sessionStart (); print_r ($ _ सत्र); $ _SESSION ['LOCATION'] = $ _SERVER ['REQUEST_URI']; session_write_close ();
एक खाली सरणी मुद्रित करता है इसलिए किसी कारण से, यह रीडायरेक्ट के दौरान मेरी सत्र सरणी को मिटा रहा है? किसी के पास कोई विचार है?
इसके अलावा, निर्मित कोड
और LAST_ACTIVITY
से हैं।
यदि यह समस्या नहीं है जो HTTPS
का उपयोग नहीं है, लेकिन सत्र कुकी को सुरक्षित
पर सेट किया गया है तो मेरा दूसरा विचार बदलना है
यदि (session_id () == '') {session_name ('MyWebsite'); Session_set_cookie_params (86400, '/', $ _SERVER ['SERVER_NAME'], सच है, सच); अगर (session_name ('MyWebsite')! = 'MyWebsite') {session_set_cookie_params (86400, '/', $ _SERVER ['SERVER_NAME] '], सच सच);
मुझे आश्चर्य है कि क्या यह आपको एक अलग नाम के तहत एक सत्र आईडी दे रहा है, यही कारण है कि print_r ($ _ session);
खाली आ रहा है यदि नहीं, तो मैं विचारों से बाहर हूं!
Comments
Post a Comment