2012-03-13 5 views
8

काम नहीं कर रहा एक पृष्ठ पर मैं अनुवर्ती पृष्ठ पर इसपीएचपी setcookie()

setcookie('user', 'value' ,6000, '/', 'mydomain.co.uk'); 

की तरह कुछ मैं

var_dump($_COOKIE); 

है मैं सभी स्वचालित रूप से उत्पन्न लोगों को देख सकते हैं, लेकिन मैं PHPSESSID की तरह है user नहीं देख सकता।

यदि मैं echo setcookie('user', 'value' ,6000, '/', 'mydomain.co.uk'); करता हूं तो यह true देता है। तो मुझे यकीन नहीं है कि मैं इसे क्यों नहीं देख सकता।

मैंने कई अलग-अलग विचारों की कोशिश की है, लेकिन कुछ भी काम नहीं किया है। साथ ही, मैंने एक पृष्ठ index.php के माध्यम से सभी अनुरोधों को पुनर्निर्देशित करने के लिए .htaccess का उपयोग किया है, यह सुनिश्चित नहीं है कि यह कुछ भी कर रहा है या नहीं।

+0

आपको ['नई कुकी ($ नाम)'] मिल सकता है (https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L51) सहायक, जैसा कि पाया गया है [यह स्टैंडअलोन लाइब्रेरी] (https://github.com/delight-im/PHP- कुकी)। – caw

उत्तर

17

इस प्रयास करें:

setcookie('user', 'value' ,time() + 6000, '/', 'mydomain.co.uk'); 

समाप्त हो रहा पैरामीटर एक टाइमस्टैम्प की जरूरत है। 6000 एक टाइमस्टैम्प के रूप में अतीत में है और इसलिए कुकी को हटा देता है।

+0

आह हे हाँ! बढ़िया, धन्यवाद! – Alex

+1

जोड़ा गया नोट: समाप्ति पैरामीटर 0 पर सेट किया जा सकता है जो मूल रूप से सत्र के अंत में कुकी समाप्त हो जाती है। http://php.net/manual/en/function.setcookie.php – diggersworld

1

कैसे के बारे में:

setcookie('user', 'value' ,6000, '/', '.mydomain.co.uk'); 

लिए अपने ब्राउज़र कुकीज़ की जाँच करें। कुछ ब्राउज़रों (फ़ायरफ़ॉक्स और क्रोम) में एडॉन्स होते हैं जो आपको कुकीज़ को देखने के लिए अनुमति देते हैं ताकि आप डीबग कर सकें।

संपादित करें: समस्या 6000 है। यह गलत है। इस प्रयोग: time() + 6000

+0

हाँ, मैं क्रोम ऐड-ऑन का उपयोग कर रहा हूं लेकिन var_dumping $ _COOKIE का उपयोग करता था जब यह वहां दिखाई नहीं दे रहा था। मैंने '.mydomain.co.uk' का उपयोग करने की कोशिश की है लेकिन यह अभी भी काम नहीं कर रहा है :( – Alex

+0

आह हाँ, धन्यवाद! – Alex