2010-10-23 10 views
7

नहीं बदला जा सकता है मैंने एक नए और विकासशील साइट पर एक मौजूदा और सफलतापूर्वक चल रही साइट की प्रतिलिपि बनाई है।PHP सत्र कुकी नाम

नए सर्वर पर लॉगिन अब यह टूट गया है, और मैं इसे तथ्य यह है कि हालांकि सत्र कुकी का नाम बदले जाने के लिए नीचे ट्रैक किए गए ...

ini_set('session.name', 'DOMAIN1'); 

... ब्राउज़र sesssion कुकी के रूप में भंडारण रहता है PHPSESSID।

जब मैं नए सर्वर पर एप्लिकेशन से ऊपर की रेखा को हटा देता हूं, तो लॉगिन फिर से काम करता है। लेकिन यह एक अच्छा समाधान नहीं है, क्योंकि एक अन्य एप्लिकेशन इस नाम के तहत PHPSESSID का भी उपयोग करता है।

और मैं एक कामकाज का उपयोग करने के बजाय अजीब व्यवहार का कारण खोजना पसंद करूंगा। अगर मैं इसे ठीक नहीं करता तो यह मुझे कहीं और काट सकता है।

शायद किसी के लिए मुझे संकेत देने के लिए यह पहले से ही पर्याप्त जानकारी है। यदि नहीं, तो कौन सी जानकारी उपयोगी होगी?

यह मशीन एक बहुत नग्न और मूल उबंटू 8.04 सर्वर था, और मैंने apache2, mysql और php5 को योग्यता के साथ स्थापित किया। मैंने लोकेल्स और टाइमज़ोन भी अपडेट किया।

समाधान:

मैं स्वीकार किए जाते हैं जवाब से से इस कोड के साथ ऊपर लाइन की जगह ...

if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1')) 
{ 
    die('Unable to set sesssion scope'); 
} 

... और प्रवेश अब नए सर्वर पर काम करता है।

उत्तर

8

कभी-कभी ini_set नाटकों और आईएनआई मूल्यों को सही ढंग से सेट करने में असमर्थ है, अनुमतियों के लिए नीचे हो सकता है।

नीचे ini_set के साथ समस्या को पूरी तरह हल नहीं करता है, और यदि कोई कारण बताता है कि ini_set किसी प्रकार के होस्ट पर काम नहीं करता है, तो कृपया साझा करें!

प्रयास करें निम्नलिखित:

<? 
if(ini_set('session.name', 'DOMAIN1') === false || !session_name('DOMAIN1')) 
{ 
    die('Unable to set sesssion scope'); 
} 

phpinfo(); 
?> 

वैकल्पिक रूप से आप सिर्फ session_name() उपयोग कर सकते हैं यह निर्धारित करने के लिए, और बीमार हमेशा की सलाह तुम सिर्फ कार्यों नहीं चलाने के लिए और आशा है कि हमेशा एक में जाँच अगर बयान और सबसे खराब के लिए तैयार केस परिदृश्य, जब आपका एप्लिकेशन विश्वसनीय और कम त्रुटि_प्रोन हो जाता है।

+2

नहीं, ini_set() आईएनआई फ़ाइल को संशोधित नहीं करना चाहिए: http://php.net/ini_set देखें अन्यथा यह एक बड़ी संभावित सुरक्षा उल्लंघन होगी। – mojuba

+0

हाँ क्षमा करें, रनटाइम केवल :) – RobertPitt

+0

धन्यवाद, खोज के घंटों के बाद यह आखिरकार काम करता है। मैंने आपके उदाहरण से 4 लाइनों के साथ विरासत कोड को बदल दिया और इसे ठीक कर दिया! – mit