सत्र की मेजबानी phpBB शुरू
मैं निम्नलिखित स्थापित करने के लिए कोशिश कर रहा हूँ:
जहां उपयोगकर्ता का दौरा sub1.domain.com या sub2.domain.com और वे लॉग इन नहीं हैं, वे auth.domain.com के लिए खत्म हो धक्का दिया हो और लॉग इन कर सकते हैं। sub1.domain.com और sub2.domain.com कर रहे हैं दो अलग-अलग आवेदन पत्र, लेकिन एक ही क्रेडेंशियल्स का उपयोग।
मैं अपने php.ini में निम्नलिखित की स्थापना की कोशिश की:
लेकिन यह एक डोमेन से दूसरे के लिए जानकारी गुजर जा करने के लिए प्रतीत नहीं होता।
मैं निम्नलिखित की कोशिश की:
सत्र आईडी बिल्कुल एक जैसे हैं लेकिन जब मैं बाहर डंप $ _SESSION चर यह दोनों कुंजी, बस जो कुछ भी कुंजी मैं हर डोमेन के अंतर्गत सेट नहीं दिखाती है।
इस सटीक समस्या थी - मैं चाहता था सत्र x.example.local पर बनाया मूल्यों पर example.local और उपाध्यक्ष प्रतिकूल उपलब्ध होने की।
सभी समाधान मैंने पाया php_value का उपयोग करके सत्र डोमेन बदलने के लिए कहा session.cookie_domain .example.local .htaccess में (php.ini के माध्यम से या ini_set के माध्यम से या)।
पकड़ मैं सभी उप डोमेन (अब तक ठीक) लेकिन यह भी मुख्य डोमेन के लिए के लिए session.cookie_domain की स्थापना की गई थी। मुख्य डोमेन पर session.cookie_domain स्थापना जाहिरा तौर पर नहीं-नहीं है।
मूल रूप से जिस तरह से यह मेरे लिए काम किया:
- सभी उप डोमेन के लिए session.cookie_domain निर्धारित किया है।
- मुख्य डोमेन के लिए सेट नहीं है
अरे हाँ, सुनिश्चित करें कि डोमेन (मेरे मामले .local में) एक टीएलडी है कि सुनिश्चित करें। Http प्रोटोकॉल कुकीज़ / सत्र .TLD के बिना एक डोमेन पर संग्रहीत करने के लिए (यानी स्थानीय होस्ट काम नहीं करेगा, लेकिन stuff.localhost होगा) की अनुमति नहीं है।
संपादित करें। यह भी सुनिश्चित करें कि आप हमेशा जबकि उप डोमेन में परीक्षण / डिबगिंग सत्र अपनी ब्राउज़र कुकी साफ़ करते हैं। तुम नहीं, तो अपने ब्राउज़र हमेशा पुराने सत्र कुकी जो शायद सही cookie_domain अभी तक सेट नहीं है भेज देंगे। सर्वर वर्ष सत्र को पुनर्जीवित होगा और इसलिए आप झूठी नकारात्मक परिणाम प्राप्त करेंगे। (कई पदों में यह ठीक उसी प्रभाव के लिए session_name ( 'सामान') का उपयोग करने के उल्लेख किया गया है)
दिसंबर 3 '13 जवाब 14:10 पर
मैने पुष्टि कर ली है। joreon के जवाब सही है। मैं टिप्पणी नहीं कर सकता क्योंकि मेरी प्रतिष्ठा पर्याप्त इसलिए मैं यहाँ पोस्ट मेरी टिप्पणी नहीं है।
एक कॉन्फ़िग फ़ाइल में लगातार परिभाषित करें। आप इसे बदलना चाहते हैं, कोई जरूरत पूरी फ़ाइलों को संशोधित करने के।
सत्र नाम डिजिट होने नहीं कर सकते हैं केवल, कम से कम एक पत्र मौजूद होना चाहिए। अन्यथा एक नया सत्र आईडी हर बार उत्पन्न होता है।
सत्र का उपयोग शुरू करने के लिए निम्नलिखित कोड का उपयोग
मैं इस समारोह का उपयोग कर रहा:
मई 12 '15 जवाब 17:56 पर
इसे इस्तेमाल करो। यह काम करता हैं:
अक्टू 5 '10 जवाब 20:22 पर
यह अपने टीएलडी के लिए कुकी सेट की तरह दिखता है। या क्या मैं कुछ न कुछ भूल रहा हूं? - chacham15 जनवरी 20 '15 23:58 पर
मैं विचार है कि आप OpenID की तरह कुछ नहीं करना चाहते, जोएल की तरह का सुझाव दे रहा है मिलता है, लेकिन है कि आप अनेक डोमेन सत्र डेटा तक पहुंच चाहते हैं।
केवल संभावना है कि मैं के रूप में है कि समस्या के लिए एक समाधान एक डेटाबेस में sessiondata की दुकान है, और यह है कि डेटाबेस से बाहर खींचने के लिए है सोच सकते हैं।
मैं ऊपर सभी जवाब पढ़ा है, मुझे लगता है कि मेरा उत्तर यह googling लोगों के लिए उपयोगी है।
* सुनिश्चित करें कि ब्राउज़रों (डोमेन और सब-डोमेन) सर्वर को वापस सत्र कुकी भेजने के लिए, के रूप में ".example.com" सेट सत्र कुकी डोमेन।
* सुनिश्चित करें कि php सही 'लक्ष्य' सत्र वर बहाल करने के लिए लगता है बनाओ - डोमेन और उप डोमेन एक ही मशीन (शायद अलग आभासी मेजबान), सुनिश्चित करें कि "session_save_path" बनाने के लिए इंगित करते हैं सभी के लिए समान है (मैं परीक्षण किया) - तो डोमेन और उप डोमेन विभिन्न मशीनों के लिए बिंदु, आम भंडारण (डेटाबेस) की तरह बचत और सत्र डेटा (मैं अभी तक परीक्षण नहीं किया है) को बहाल करने के लिए सबसे अच्छा है। "Session_set_save_handler" का उपयोग करें कि क्या करना है।
दिसंबर 21 '12 जवाब 3:55 पर
मैं PHP के अन्य संस्करणों के लिए नहीं बोल सकता, लेकिन 5.6.6 में, बस की स्थापना php.ini फ़ाइल में session.cookie_domain मूल्य चाल सत्र चर का एक ही सेट साझा करने के लिए iPage पर अपने सभी उप डोमेन अनुमति देने के लिए किया था।
परीक्षण करने के लिए अपने ब्राउज़र से आपके डोमेन से संबंधित किसी भी मौजूदा कुकी निकालना भी सुनिश्चित करें।
ओह, नहीं पता कि वह किसी भी फर्क नहीं पड़ता लेकिन मैं यह भी सत्र स्वत: प्रारंभ उपयोग कर रहा हूँ है।
नवंबर 3 '16 जवाब 17:13 पर
एक त्वरित और गंदे समाधान आपकी रीडायरेक्ट के लिए इसका उपयोग करने के लिए है:
इस URL है, जो पीएचपी सत्र id इसका इस्तेमाल करना चाहिए बताता है के लिए? PHPSESSID = etnm7kbuf5lg0r6tv7je6ehtn4 की तर्ज पर कुछ जोड़ देगा।
जून 30 '09 जवाब 18:58 पर
यह भी यह अत्यधिक सत्र चोरी की चपेट में छोड़ देता है :) समस्या (वे कर रहे हैं मेरी अपडेट किया गया पोस्ट देखें) मिलान नहीं सत्र आईडी के साथ नहीं है, लेकिन डोमेन के बीच नहीं चलती डेटा के साथ। - dragonmantank जून 19:08 पर 30 '09
सहमति, इस अत्यधिक संवेदनशील क्वेरी स्ट्रिंग में सत्र आईडी छोड़ने है। - 10:02 पर इयान जेमीसन फ़र, 18 '13
कुकीज़ को सादे पाठ के रूप में भेजा जाता, यह किसी भी रास्ते पहले से खुली नहीं थे नहीं खोलता है। मैं यह नहीं कह रहा हूँ कि यह एक अच्छा समाधान है, लेकिन यह कुकीज़ का उपयोग कर से कम नहीं सुरक्षित है। - sakabako मार्च 1 '13 19:48 पर