2011-05-12 12 views
5

मैं एक अपाचे वर्चुअल होस्ट से दूसरे में PHP सत्र डेटा कैसे पास करूं? मैं वर्तमान में अपाचे 2.2.17 और PHP 5.3.3 चला रहा हूं और मैंने एक एकल साइन-ऑन एप्लिकेशन प्रबंधित करने के लिए एक होस्ट स्थापित किया है और मुझे इसे दो अन्य वर्चुअल होस्ट्स को पास करने की आवश्यकता है जो अलग-अलग एप्लिकेशन चला रहे हैं। यह कुछ ऐसा है जो मैं आगे विकसित करना चाहता हूं, लेकिन अब सत्र डेटा पास करना सबसे आसान होगा।अपाचे वर्चुअल होस्ट्स के बीच स्थानांतरण सत्र डेटा

वर्तमान में इस कोड को एसएसओ उपडोमेन auth.domain.com में पहले सत्र बनाता है और फिर अनुप्रयोग उपयोगकर्ता इंटरफ़ेस app.domain.com (छंटनी की गई है) के पास वापस भेजता:

$user = new User; 
    $user->set_user_session(); 
    Header("Location: $redirectURL"); 
    exit; 

सर्वर पूरी तरह से निजी तौर पर प्रबंधित किया जाता है इसलिए बहु-उपयोगकर्ता सुरक्षा चिंता नहीं है। हालांकि, अगर कोई इससे परे किसी भी सुरक्षा मुद्दे को देखता है तो कृपया मुझे बताएं। यदि आप एक बेहतर पद्धति के बारे में जानते हैं तो कृपया साझा करें और मैं इसे और अधिक शोध करूंगा। मैं मदद की सराहना करता हूं।

उत्तर

3

जहां तक ​​मुझे पता है, PHP सत्र डिफ़ॉल्ट रूप से नहीं हैं (डिफ़ॉल्ट रूप से) वर्चुअल होस्ट को पता है: आपको रीडायरेक्ट के हिस्से के रूप में सत्र आईडी पास करने की आवश्यकता होगी और फिर उसे अन्य वर्चुअल होस्ट में सेट करना होगा। तो कुछ इस तरह:

$sessionid = session_id(); 
Header("Location: $redirectURL?session=$sessionid"); 
exit; 

और फिर पुन: निर्देशन का लक्ष्य में:

session_id($_GET['session']); 
session_start(); 

कि कोशिश करो और मुझे पता है कि यह कैसे काम करता है।

+0

यह अब और इच्छा एल चल रहा है और आप जानते हैं कि यह काम करता है या नहीं। धन्यवाद! – crockpotveggies

+0

निश्चित बात: आपको यह सुनिश्चित करना होगा कि आप 'session_id ($ _ GET [' session ']) बनाते हैं;' किसी भी सत्र डेटा तक पहुंचने से पहले कॉल करें। – Femi

+0

मैं सत्र आईडी को बदलने में सक्षम हूं लेकिन किसी कारण से मैं सत्र चर का उपयोग नहीं कर सकता। Echo'ing session_id() द्वारा पुष्टि की गई है, लेकिन जब मैं $ _SESSION [] चर प्रतिबिंबित करने का प्रयास करता हूं तो यह सेट नहीं होता है। कोई भी PHP सेटिंग्स जो इसे प्रभावित करेगी? – crockpotveggies

0

साझा सत्र आप उप डोमेन (निर्दिष्ट नहीं) आप इतना है कि सत्र आईडी उन दोनों के बीच

session_set_cookie_params(0, '', '.domain.com');

एक कुकी के रूप में पारित हो जाता है तो बस डोमेन के लिए कुकी डोमेन सेट करने में सक्षम हो सकता है के बारे में बात कर रहे हैं

हां, तो my.domain.com और your.domain.com दोनों जगह में या तो विकल्प के साथ के लिए .domain.com

कुकी आप एक साझा डेटाबेस या redis storag इस्तेमाल कर सकते हैं मिलेगा साझा सत्र प्रबंधन के लिए ई। (सत्र भंडारण के माध्यम से सर्वर के बीच शेयर डेटा)

जब तक सत्र भंडारण कॉन्फ़िगरेशन सभी वीएमएस के लिए ही हैं।

संबंधित मुद्दे