2012-03-02 17 views
10

यहां बहुत बुनियादी सवाल है। PHP में, यदि उपयोगकर्ता के ब्राउज़र में कुकीज़ अक्षम हैं, तो आप दोनों सर्वर कुकीज़ ($_SESSION) और क्लाइंट कुकीज़ ($_COOKIE, setcookie) का उपयोग नहीं कर सकते हैं या केवल बाद वाले अक्षम हैं? असल में आप उपयोगकर्ता को लॉग इन नहीं कर सकते हैं या ऐसा कुछ भी कर सकते हैं जिसके लिए सत्र की आवश्यकता है, है ना?कुकीज अक्षम होने पर क्या होता है?

इसके अलावा, किस मामले में कोई कुकी अक्षम करना चाहती है?

धन्यवाद!

उत्तर

14

हाँ, यह सच है। दोनों सत्र और सामान्य कुकीज़ सामान्य कुकीज़ हैं। यदि कोई उपयोगकर्ता कुकीज़ स्वीकार नहीं करता है, तो वह उनके द्वारा सक्षम कार्यक्षमता का उपयोग नहीं कर सकता है। जिसका मतलब है कि पूरे उपयोगकर्ता को उस उपयोगकर्ता के लिए काफी तोड़ दिया जाएगा, यही कारण है कि इस दिन और उम्र में वस्तुतः कोई भी व्यक्ति जिसकी कुकीज़ पूरी तरह से अक्षम नहीं हुई है।

PHP में अंतर्निहित तंत्र है जिसे transparent session ids कहा जाता है, जो एक क्वेरी पैरामीटर में सत्र आईडी रखने के लिए सभी लिंक स्वचालित रूप से फिर से लिखता है। मैं इसका उपयोग करने का सुझाव नहीं दूंगा, क्योंकि यूआरएल में सत्र आईडी वर्म्स की एक पूरी नई खुलती है।

उपयोगकर्ता मित्रता के लिए, मैं आपको यह जांचने की सलाह दूंगा कि उपयोगकर्ता को कुकीज़ सक्षम है या नहीं (कुकी सेट करें, यूआरएल में ध्वज के साथ अगले पृष्ठ पर रीडायरेक्ट करें कि कुकीज़ सेट होना चाहिए, देखें कि क्या आपको मिलता है किसी भी कुकीज़ को वापस) और यदि नहीं, तो कृपया उपयोगकर्ता को सक्षम करने के लिए कृपया सलाह दें।

+0

+1। यादृच्छिक विचार .. क्या आपको लगता है कि ट्रांस-एसआईडी एसएसएल के साथ स्वीकार्य हो सकता है? (चूंकि क्वेरी पैरामीटर एसएसएलएड हैं)? – Ben

+0

@बेन समस्या वास्तव में एसएसएल की कमी नहीं है, यह है कि उपयोगकर्ता यह नहीं समझ पाएगा कि यूआरएल में एक सत्र है और एक यूआरएल भेजता है जिसमें एक दोस्त को ट्रांस-सिड होता है।लिंक पर क्लिक करने से उपयोगकर्ता को उपयोगकर्ता के रूप में लॉग इन किया जाएगा। –

+0

@ बेन नंबर समस्या * दृश्यता * के बारे में नहीं है। एक कुकी यूआरएल के रूप में दिखाई देती है, अगर कोई भी अवरोध करने की स्थिति में है। समस्या यूआरएल साझा करने के साथ है, उन्हें ब्राउज़र इतिहास आदि में रखते हुए – deceze

2

आप उपयोगकर्ता को $_GET द्वारा ट्रैक कर सकते हैं।

कल्पना कीजिए कि प्रत्येक एकल पृष्ठ पर उपयोगकर्ता आपको ?user_id=XYZ123 पास करता है तो आप एक बहुत ही समान सर्वर-पहचान लागू कर लेते। यह स्पष्ट नुकसान हैं: यदि आप कॉपी/एक यूआरएल आप दूर अपने session_id दे देंगे पेस्ट

  1. की वजह से 1 सत्र उच्च जैक भी कम तकनीक savy

क्यों है उन कुकीज़ अक्षम करें?
उपयोगकर्ता मिश्रण में पहले और तीसरे पक्ष की कुकीज़ को फेंक देते हैं लेकिन वे विभिन्न नस्लों से आते हैं।

पहली पार्टी कुकीज़ आमतौर पर ठीक होती है। जब आप फेसबुक पर जाते हैं तो यह उम्मीद की जाती है कि फेसबुक सर्वर के साथ आपकी बातचीत को स्टोर करने के लिए कुकी रखता है।

इसकी अपेक्षा नहीं की जाती है कि विज्ञापन कंपनी जो फेसबुक और ईबे दोनों में जोड़ती है, आपकी कुकी वापस ले जाती है और जांचती है, आह, तो यह आदमी eBay पर xyz की तलाश में था, इसलिए अब वह फेसबुक पर है उसे खरीदने आदि बनाने के लिए उसे एबीसी दिखाएं ...

1

मुझे लगता है कि आप सत्र संदर्भ मैनुअल http://www.php.net/manual/en/session.idpassing.php

संक्षेप में पढ़ना चाहिए, यदि आपके सर्वर session_id नहीं मिल रहा है, वह सत्र पुनर्स्थापित नहीं कर सकता। लेकिन आप सत्र मूल्यों को संग्रहीत करने के वैकल्पिक तरीकों का उपयोग कर सकते हैं। या आप उपयोगकर्ता के क्लाइंट पर्यावरण पैरामीटर पर session_od आधार उत्पन्न कर सकते हैं। इस उत्तर के लिए

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