किसी साइट पर लॉग इन करना मैं अपनी स्थानीय मशीन पर अपेक्षित कार्यों पर काम कर रहा हूं लेकिन दूरस्थ सर्वर पर विफल रहता है लेकिन केवल इंटरनेट एक्सप्लोरर में विफल रहता है। किकर यह है कि यह आईई में स्थानीय रूप से काम करता है, बस रिमोट मशीन पर नहीं।सत्र चर सेट नहीं हो रहे हैं, लेकिन केवल इंटरनेट एक्सप्लोरर में हैं और सभी मशीनों पर नहीं
दुनिया में क्या इसका कारण बन सकता है? मैंने रिमोट मशीन पर कोड के माध्यम से कदम रखा है और डेटाबेस में दर्ज किए गए लॉगिन किए गए लॉगिन मान देख सकते हैं, वे पाए जाते हैं और फिर एक लॉगिन फ़ंक्शन कहा जाता है। यह दो $ _SESSION चर सेट करता है और मुख्य व्यवस्थापक पृष्ठ पर रीडायरेक्ट करता है। हालांकि, केवल आईई में (और स्थानीय मशीन पर नहीं चलते ... यह महत्वपूर्ण है) जब आप मुख्य व्यवस्थापक पृष्ठ पर जाते हैं तो $ _SESSION चर मौजूद नहीं होते हैं। var_dump($_SESSION)
मुझे हर ब्राउज़र पर क्या उम्मीद है जब मैं अपने स्थानीय वातावरण में और आईई 6, 7 और 8 को छोड़कर प्रत्येक ब्राउज़र में रिमोट सर्वर पर चलाता हूं (जहां मुझे शून्य मान मिलता है जैसे कि $ के लिए कुछ भी सेट नहीं किया गया है _SESSION)।
यह वास्तव में मुझे स्टंप किया गया है इसलिए किसी भी सलाह की सराहना की जाती है।
एक उदाहरण के लिए ... IE में, स्थानीय रूप से चलाने के लिए, var_dump मुझे देता है: दूरस्थ सर्वर पर
array
'Username' => string 'theusername' length=11
'UserID' => string 'somevalue' length=9
भागो (केवल आईई ... ठीक दूसरे ब्राउज़र में काम) var_dump मुझे देता है:
array(0){}
संहिता (एक न्यूनतम उदाहरण ... वास्तव में एक कोड उदाहरण इस मुद्दे के साथ की जरूरत नहीं है, हालांकि):
$User = GetUser($Username, $Password);
if ($User->UserID <> "") { // this works so we call Login()...
Login($User); // this also works and gives expected results. on to redirect...
header("Location: index.php"); // a var_dump at index.php shows that there is no session data at all in IE, remotely.
} else {
header("Location: login.php");
}
function Login($data) {
$_SESSION['Username'] = $data->Username;
$_SESSION['UserID'] = $data->UserID;
// a var dump here gives the expected data in every browser
}
संपादित करें: इसे हल किया गया। यह तथ्य था कि परीक्षण सर्वर पर डोमेन नाम में अंडरस्कोर था। कोई विचार नहीं कि इसके लिए Google के पास समय क्यों नहीं है और अंडरस्कोर, कुछ_client.ourcompany.com जैसी कुछ नाम है, समस्या थी। इंटरनेट एक्सप्लोरर से प्यार होना चाहिए ... यह एक निष्क्रिय आक्रामक सह-कार्यकर्ता की तरह है जिसे आप आसानी से नहीं बचा सकते हैं।
हमारे लिए कोड नमूना देखने के लिए? –
क्या आपने प्रत्येक पृष्ठ के शीर्ष पर 'session_start();' शामिल किया था? – Alec
क्या आपने session_start() शामिल किया था; प्रत्येक पृष्ठ के शीर्ष पर? हां। – Stuart