2011-06-04 15 views
5

से वैरिएबल का उपयोग कर PHP कुकीज़ मैं कोई PHP विशेषज्ञ नहीं हूं और मैं एक कुकी सेट करने की कोशिश कर रहा हूं जिसमें यूआरएल से रेफरर कोड है। उदाहरण के लिए: www.example.com?promotioncode=google को कुकी नाम प्रोमोकोड सेट करना चाहिए, = और 6 महीने की समाप्ति के बाद जो भी हो, वह मान चाहिए।यूआरएल

मैं promotioncode

$_GET['promotioncode'] 

का उपयोग कर प्राप्त कर सकते हैं, लेकिन मैं कुकी स्ट्रिंग में इस डालने के लिए नहीं कर पा रहे। मैं कुछ तरीके की कोशिश की है:

$id = 'promo'; 
$value = $_GET['promotioncode']; 
$time = time()+60*60*24*180; 
setcookie($id, $value, $time); 

और

$id = 'promo'; 
$time = time()+60*60*24*180; 
setcookie($id, $_GET['promotioncode'], $time); 

लेकिन यह काम नहीं करता। यदि मैं कुकी मान के रूप में एक शब्द या संख्या का उपयोग करता हूं तो कुकी को कोई समस्या नहीं है।

मुझे क्या याद आ रही है/गलत कर रहा है?

+0

क्या आपने HTTP प्रतिक्रिया शीर्षलेख की जांच की? एक कुकी सेट करने का आपका प्रयास इस तथ्य के कारण असफल हो सकता है कि हेडर पहले से ही भेज दिया गया है। क्या आपने अपना त्रुटि लॉग जांच लिया था? – Gumbo

+0

यह वास्तव में एक Magento स्थापना पर है और यह उसी तरह जोड़ा जा रहा है जैसे Magento द्वारा उत्पन्न अन्य कुकीज़ .. यदि मैं 123 को मान सेट करता हूं तो यह ठीक काम करता है, समस्या यूआरएल से पैरामीटर के माध्यम से खींच रही है। – Andy

+0

वह कोड काम करना चाहिए, और यह यहां काम करता है। आप कैसे जानते हैं कि यह काम नहीं करता है? क्या आप कुकीज़ की जांच करते हैं या आप setcookie() से वापसी मूल्य की जांच करते हैं? क्या आपने $ _GET की सामग्री को वर्डम्प किया था? इसके बारे में कुछ अजीब बात है? – Sylverdrag

उत्तर

0

सरल $string और $_GET['key'] के बीच कोई अंतर नहीं है, इसलिए समस्या यह नहीं हो सकती है।

इसके अलावा के अपने 4 आर्ग जाँच setcookie

0

जोड़ने

if($_GET['promotioncode']) 
    setcookie(.....) 
2

सर्वर पर पथ, जिसमें कुकी पर उपलब्ध हो जाएगा परिभाषित करने के लिए एक पैरामीटर जोड़ें कोशिश:

setcookie($id, $value, $time, '/'); 

यह काम करना चाहिए।

0

$ id = $ _GET ['promotioncode'];
सेटकुकी ('प्रचार कोड', $ आईडी, समय() + 60 * 30 * 24 * 3600, '/');

0

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

setcookie($id, "" . $value, $time); 

खाली स्ट्रिंग ("") स्पष्ट या $ मूल्य के प्रकार निर्धारित करने में मदद कर सकते हैं। उद्धरण मूल रूप से सुनिश्चित करते हैं कि $ value चर सेटक्यूकी विधि में स्ट्रिंग पैरामीटर के रूप में पास किया गया है।

+0

यह उत्तर निम्न गुणवत्ता की समीक्षा कतार में बदल गया है, संभवतः क्योंकि आप कोड का कोई स्पष्टीकरण प्रदान नहीं करते हैं। यदि यह कोड प्रश्न का उत्तर देता है, तो अपने उत्तर में कोड समझाते हुए कुछ पाठ जोड़ने पर विचार करें। इस तरह, आप अधिक अपवर्तित होने की अधिक संभावना रखते हैं - और प्रश्नकर्ता को कुछ नया सीखने में मदद करें। – lmo