मेरे पास एक एपीआई है जो अनुरोधों के बीच कुछ राज्य जानकारी पर निर्भर है। कोड के एक आसान पहले संस्करण के रूप में, मैं बस कुछ और उन्नत (एपीसी, memcache, डीबी) की बजाय राज्य की जानकारी स्टोर करने के लिए PHP सत्र का उपयोग कर रहा हूँ। एक वेब ब्राउज़र में अपने प्रारंभिक परीक्षण के दौरान, सब कुछ पूरी तरह से काम किया। हालांकि, ऐसा लगता है कि जब ग्राहक कर्ल या wget जैसे गैर-ब्राउज़र विधियों से कनेक्ट करने का प्रयास करते हैं, तो राज्य की जानकारी संरक्षित नहीं की जा रही है।PHP में एक सत्र बनाया जाएगा यदि कोई ब्राउज़र उपयोग नहीं किया जाता है
क्या कोई PHP सत्र केवल तभी बनाया जाएगा जब कोई ब्राउज़र पृष्ठ का अनुरोध कर रहा हो? मैं session_start() के साथ सत्र को स्पष्ट रूप से शुरू कर रहा हूं और सत्र_नाम() के साथ इसे पहले नामकरण कर रहा हूं।
एक जोड़ा गया नोट। मैंने सीखा कि मेरी बड़ी समस्याओं में से एक यह था कि मैं session_id ($ id) के माध्यम से सत्र आईडी सेट करने के बजाय सत्र का नाम दे रहा था; Session_name() का उपयोग करने का मेरा इरादा उसी सत्र को पुनर्प्राप्त करना था जो पहले बनाया गया था, और ऐसा करने का सही तरीका session_id को session_name नहीं सेट करना है।
ऐसा लगता है कि सत्र की जानकारी सर्वर पर जारी रहेगी जैसा कि नीचे बताया गया है (धन्यवाद)। लेकिन इसे रखने के लिए आपको सत्र आईडी, या, जैसा कि मेरे मामले में, किसी अन्य आईडी को पारित करना होगा जो उपयोगकर्ता को विशिष्ट रूप से पहचान लेगा। Session_id के रूप में इस आईडी का उपयोग करें और आपके सत्र अपेक्षित कार्य करेंगे। इसलिए सत्र अपने सर्वर पर नज़र रखी जाती है, लेकिन ग्राहक प्रत्येक अनुरोध के साथ ही पहचान करने के लिए है
> लेकिन यदि क्लाइंट कुकीज़ का समर्थन नहीं करता है (जैसे कर्ल या wget) वास्तव में। दोनों एक कुकी फ़ाइल को संग्रहीत/लोड करने के कुछ तरीके का समर्थन करते हैं – Uberfuzzy
अच्छी पकड़। धन्यवाद। – keparo