2011-06-26 6 views
17

यदि मैं एक ही कुकी नाम के साथ दो बार setcookie() पर कॉल करता हूं, तो मुझे दो कुकीज़ मिलती हैं।आप PHP में कुकी कैसे अपडेट करते हैं?

आप मौजूदा कुकी को कैसे अपडेट करते हैं?

+3

आपने कैसे पुष्टि की कि आपको दो कुकीज़ मिलती हैं? – deceze

+0

मैं दायाँ क्लिक करें -> साइट प्राथमिकताओं को संपादित करें -> कुकीज़ (ओपेरा), और वहां मैं एक ही नाम – Cookie

उत्तर

16

आप एक कुकी प्रति से अपडेट नहीं कर सकते हैं, हालांकि आप इसे ओवरराइट कर सकते हैं। अन्यथा, यह वही है जो आप खोज रहे हैं: http://php.net/manual/en/function.setcookie.php

यह काम करता है। उस पृष्ठ से "सामान्य संकट" को पढ़ना सुनिश्चित करें।

आप सुपर ग्लोबल $_COOKIE['cookie_name'] के साथ-साथ कुकीज पढ़ने/लिखने के लिए भी उपयोग कर सकते हैं।

+5

के साथ बहुत सारी कुकीज़ देखता हूं लेकिन यह काम नहीं करता है: ((set_cookie ('fuuuuu', rand (0, 3434543) , $ exp_date); ', रीफ्रेश करने के बाद मुझे एक ही नाम के साथ एक और कुकी मिलती है, अलग-अलग मान: – Cookie

+1

क्या वे एक ही डोमेन से हैं? www या no-www counts। – Francisc

+0

hmm मैंने डोमेन तर्क सेट नहीं किया है .. लेकिन कुकीज एक डोमेन के पृष्ठों से सेट की जाती हैं – Cookie

4

तो PHP दो सेट-कुकी भेज देगा: हेडर अगर निर्देशित करते हैं, तो केवल अंतिम व्यक्ति को ब्राउज़र में बने रहना चाहिए।
नेटस्केप कुकी कल्पना http://curl.haxx.se/rfc/cookie_spec.html का कहना है:

एक ही पथ और नाम के उदाहरण नवीनतम उदाहरण पूर्वता लेने के साथ, एक दूसरे के ऊपर लिख देगा। एक ही पथ के उदाहरण लेकिन अलग-अलग नाम अतिरिक्त मैपिंग जोड़ देंगे।

हालांकि, ऐसी एज स्थितियों से बचने के लिए सलाह दी जा सकती है। अपने एप्लिकेशन को पुन: व्यवस्थित करें ताकि इसे पहले से भेजे गए कुकी को ओवरराइड करने की आवश्यकता न हो।

16

आप setcookie() फ़ंक्शन का उपयोग कुकी मान अद्यतन कर सकते हैं लेकिन आप '/' 4 तर्क जो 'पथ' तर्क है में, एक ही नाम के साथ एक और कुकी बनाने को रोकने के लिए जोड़ना चाहिए।

अर्थात setcookie('cookie_name', 'cookie_value', $exp_date, '/');

0

कॉल कुकी और उपयोगकर्ता नाम मान हटा setcookie ("उपयोगकर्ता नाम", ', 0, "/");