क्या $_SESSIONक्लाइंट या सर्वर पर वैरिएबल स्टोर किए जाते हैं?
क्या $_SESSIONक्लाइंट या सर्वर पर वैरिएबल स्टोर किए जाते हैं?
जवाबों:
$_SESSIONचर भंडारण का स्थान PHP के session.save_pathविन्यास द्वारा निर्धारित किया जाता है। आमतौर पर यह /tmpलिनक्स / यूनिक्स प्रणाली पर होता है। phpinfo()यदि DocumentRootआपके डोमेन में इस सामग्री के साथ एक फ़ाइल बनाकर 100% सुनिश्चित नहीं है तो अपनी विशेष सेटिंग देखने के लिए फ़ंक्शन का उपयोग करें :
<?php
phpinfo();
?>
यहाँ इस विन्यास सेटिंग पर PHP प्रलेखन के लिए लिंक है:
http://php.net/manual/en/session.configuration.php#ini.session.save-path
जैसा कि पहले ही उल्लेख किया गया है, सामग्री सर्वर पर संग्रहीत है। हालांकि सत्र को सत्र-आईडी द्वारा पहचाना जाता है, जिसे क्लाइंट में संग्रहीत किया जाता है और प्रत्येक अनुरोध के साथ भेजा जाता है। आमतौर पर सेशन-आईडी को कुकी में संग्रहीत किया जाता है, लेकिन इसे उरल्स के साथ जोड़ा जा सकता है। (यह PHPSESSIDक्वेरी-पैरामीटर जिसे आप कुछ समय देखते हैं)
वे आम तौर पर सर्वर पर संग्रहीत होते हैं। जहां वे संग्रहीत हैं, डेवलपर के रूप में आपके ऊपर है। आप उपयोग कर सकते हैं session.save_handlerविन्यास चर और session_set_save_handlerकैसे सत्र सर्वर पर सहेज नियंत्रित करने के लिए। डिफ़ॉल्ट सहेजने का तरीका सत्रों को फ़ाइलों में सहेजना है। जहाँ वे बच जाते हैं session.save_pathचर द्वारा नियंत्रित किया जाता है।
एक जोड़: यह ध्यान दिया जाना चाहिए कि, मामले में "/ tmp" वह निर्देशिका है जहां सत्र डेटा संग्रहीत किया जाता है (जो डिफ़ॉल्ट मान प्रतीत होता है), सत्र उस वेब सर्वर के रिबूट के बाद जारी नहीं रहेगा, जैसा कि "/ tmp" "अक्सर रिबूट के दौरान शुद्ध किया जाता है। क्लाइंट-वार दृढ़ता की अवधारणा सर्वर पर भंडारण की दृढ़ता के साथ खड़ी है और गिरती है - जो सत्र डेटा के लिए "/ tmp" निर्देशिका का उपयोग करने पर विफल हो सकती है।
मैं उबंटू का उपयोग कर रहा हूं और मेरे सत्र / var / lib / php5 में संग्रहीत हैं।
जैसा कि श्री टेलर ने बताया कि यह आमतौर पर php.ini में सेट किया गया है। आमतौर पर वे एक विशिष्ट निर्देशिका में फ़ाइलों के रूप में संग्रहीत होते हैं।
Ubuntu 16.10 के लिए सत्र / var / lib / php / session / ... में सेव हैं
यह कैसे काम करता है? यह मुझे कैसे पता चलेगा?
अधिकांश सत्र उपयोगकर्ता के कंप्यूटर पर एक उपयोगकर्ता-कुंजी (जिसे सत्र कहा जाता है) सेट करते हैं जो कुछ इस तरह दिखता है: 765487cf34ert8dede5a562e4f3a7e12। फिर, जब किसी अन्य पृष्ठ पर एक सत्र खोला जाता है, तो यह उपयोगकर्ता के लिए कंप्यूटर को स्कैन करता है और आपके चर प्राप्त करने के लिए सर्वर पर चलता है।
यदि आप गलती से कैश साफ़ कर देते हैं, तो आपकी उपयोगकर्ता-कुंजी भी साफ़ हो जाएगी। जब तक आप अपनी आईडी नहीं जानते, आप सर्वर से अपने चर प्राप्त नहीं कर पाएंगे।
मेरे उबंटू मशीन सत्र में संग्रहित हैं
/var/lib/php/sessions
और आपको sudo lsइस निर्देशिका में केवल lsइसे फेंकना होगा
ls: निर्देशिका नहीं खोल सकता है। ': अनुमति से इनकार किया
और मेरे Windows Wamp सर्वर php सेशन में स्टोर किया जाता है
C:\wamp64\tmp
और यदि आप विंडोज़ पर स्टैंडअलोन php स्थापित करते हैं तो डिफ़ॉल्ट रूप से कोई मान सेट नहीं होता है
session.save_path => no value => no value
ऊपर दिए गए कई उत्तर अपारदर्शी हैं। मेरी राय में इस सवाल का लेखक बस यह जानना चाहता है कि सत्र चर को डिफ़ॉल्ट रूप से कहाँ संग्रहीत किया जाता है। इसके अनुसार: https://canvas.seattlecentral.edu/courses/937693/pages/10-advanced-php-session वे डिफ़ॉल्ट रूप से सर्वर पर संग्रहीत होते हैं । उम्मीद है, अन्य लोग इस योगदान को सार्थक पाएंगे।