$ _SESSION चर कहाँ संग्रहीत किए जाते हैं?


158

क्या $_SESSIONक्लाइंट या सर्वर पर वैरिएबल स्टोर किए जाते हैं?


सर्वर पर जहां आप php एप्लिकेशन चलाते हैं, विशिष्ट पथ के लिए आपको phpinfo () के साथ
जांचना होगा

जवाबों:


168

$_SESSIONचर भंडारण का स्थान PHP के session.save_pathविन्यास द्वारा निर्धारित किया जाता है। आमतौर पर यह /tmpलिनक्स / यूनिक्स प्रणाली पर होता है। phpinfo()यदि DocumentRootआपके डोमेन में इस सामग्री के साथ एक फ़ाइल बनाकर 100% सुनिश्चित नहीं है तो अपनी विशेष सेटिंग देखने के लिए फ़ंक्शन का उपयोग करें :

<?php
    phpinfo();
?>

यहाँ इस विन्यास सेटिंग पर PHP प्रलेखन के लिए लिंक है:

http://php.net/manual/en/session.configuration.php#ini.session.save-path


129

जैसा कि पहले ही उल्लेख किया गया है, सामग्री सर्वर पर संग्रहीत है। हालांकि सत्र को सत्र-आईडी द्वारा पहचाना जाता है, जिसे क्लाइंट में संग्रहीत किया जाता है और प्रत्येक अनुरोध के साथ भेजा जाता है। आमतौर पर सेशन-आईडी को कुकी में संग्रहीत किया जाता है, लेकिन इसे उरल्स के साथ जोड़ा जा सकता है। (यह PHPSESSIDक्वेरी-पैरामीटर जिसे आप कुछ समय देखते हैं)


41
+1 क्योंकि आपने निहित किया है कि कुकीज़ $ _SESSION की सामग्री को संग्रहीत नहीं करते हैं (ये सामग्री सर्वर पर संग्रहीत हैं, इसलिए क्लाइंट द्वारा संशोधन के लिए असुरक्षित नहीं हैं)
shufler

12
बहुत बढ़िया जवाब! मैं इस प्रश्न की खोज कर रहा था: "ब्राउज़र कैश हटाने के बाद सत्र क्यों समाप्त हो रहे हैं?"। और आपने मेरा दिन बचाया।
पुपिल

2
सर्वर फ़ाइल sess_7nu9p0fvidvva6ouaugqcc8292 ब्राउज़र अलर्ट पर प्राप्त करें (getCookie ('PHPSESSID')); // 7nu9p0fvidvva6vaugq8292
zloctb

2
प्लस 1 - प्रश्न का उत्तर देने के लिए: "... क्लाइंट या सर्वर पर संग्रहीत?"
एलेक्स वर्गास

22

वे आम तौर पर सर्वर पर संग्रहीत होते हैं। जहां वे संग्रहीत हैं, डेवलपर के रूप में आपके ऊपर है। आप उपयोग कर सकते हैं session.save_handlerविन्यास चर और session_set_save_handlerकैसे सत्र सर्वर पर सहेज नियंत्रित करने के लिए। डिफ़ॉल्ट सहेजने का तरीका सत्रों को फ़ाइलों में सहेजना है। जहाँ वे बच जाते हैं session.save_pathचर द्वारा नियंत्रित किया जाता है।


18

एक जोड़: यह ध्यान दिया जाना चाहिए कि, मामले में "/ tmp" वह निर्देशिका है जहां सत्र डेटा संग्रहीत किया जाता है (जो डिफ़ॉल्ट मान प्रतीत होता है), सत्र उस वेब सर्वर के रिबूट के बाद जारी नहीं रहेगा, जैसा कि "/ tmp" "अक्सर रिबूट के दौरान शुद्ध किया जाता है। क्लाइंट-वार दृढ़ता की अवधारणा सर्वर पर भंडारण की दृढ़ता के साथ खड़ी है और गिरती है - जो सत्र डेटा के लिए "/ tmp" निर्देशिका का उपयोग करने पर विफल हो सकती है।


13

डेबियन पर (अधिकांश लिनक्स डिस्ट्रो? के लिए यह मामला नहीं है?), इसे / var / lib / php5 / में सहेजा गया है। जैसा कि ऊपर उल्लेख किया गया है, यह आपके php.ini में कॉन्फ़िगर किया गया है।


12

मैं उबंटू का उपयोग कर रहा हूं और मेरे सत्र / var / lib / php5 में संग्रहीत हैं।


1
धन्यवाद, यह सब मैं चाहता था। हाँ, यदि वे सामान्य स्थान पर नहीं थे, तो मुझे आईएनआई खोलने में दरार डालने की आवश्यकता होगी, लेकिन मैं सिर्फ यह जानना चाहता था "अरे, सत्र आमतौर पर कहाँ संग्रहीत होते हैं?" / var / lib / php / सत्र / यह है।
एरिक एल।

7

जैसा कि श्री टेलर ने बताया कि यह आमतौर पर php.ini में सेट किया गया है। आमतौर पर वे एक विशिष्ट निर्देशिका में फ़ाइलों के रूप में संग्रहीत होते हैं।



0

यह कैसे काम करता है? यह मुझे कैसे पता चलेगा?

अधिकांश सत्र उपयोगकर्ता के कंप्यूटर पर एक उपयोगकर्ता-कुंजी (जिसे सत्र कहा जाता है) सेट करते हैं जो कुछ इस तरह दिखता है: 765487cf34ert8dede5a562e4f3a7e12। फिर, जब किसी अन्य पृष्ठ पर एक सत्र खोला जाता है, तो यह उपयोगकर्ता के लिए कंप्यूटर को स्कैन करता है और आपके चर प्राप्त करने के लिए सर्वर पर चलता है।

यदि आप गलती से कैश साफ़ कर देते हैं, तो आपकी उपयोगकर्ता-कुंजी भी साफ़ हो जाएगी। जब तक आप अपनी आईडी नहीं जानते, आप सर्वर से अपने चर प्राप्त नहीं कर पाएंगे।


0

मेरे उबंटू मशीन सत्र में संग्रहित हैं

/var/lib/php/sessions

और आपको sudo lsइस निर्देशिका में केवल lsइसे फेंकना होगा

ls: निर्देशिका नहीं खोल सकता है। ': अनुमति से इनकार किया

और मेरे Windows Wamp सर्वर php सेशन में स्टोर किया जाता है

C:\wamp64\tmp

और यदि आप विंडोज़ पर स्टैंडअलोन php स्थापित करते हैं तो डिफ़ॉल्ट रूप से कोई मान सेट नहीं होता है

session.save_path => no value => no value

-1

ऊपर दिए गए कई उत्तर अपारदर्शी हैं। मेरी राय में इस सवाल का लेखक बस यह जानना चाहता है कि सत्र चर को डिफ़ॉल्ट रूप से कहाँ संग्रहीत किया जाता है। इसके अनुसार: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-session वे डिफ़ॉल्ट रूप से सर्वर पर संग्रहीत होते हैं । उम्मीद है, अन्य लोग इस योगदान को सार्थक पाएंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.