2013-01-02 16 views
5

मैं PHP में नया हूं और कुकीज़ के बारे में ज्यादा जानकारी नहीं है।php का उपयोग कर कुकीज़ में डेटा कैसे स्टोर करें?

ऐसा लगता है कि मुझे अपने डेटा को कुकीज़ में संग्रहीत करना होगा क्योंकि मुझे केवल अस्थायी रूप से उन डेटा की आवश्यकता है। मैंने कुछ लेख पढ़ा है और इसमें से कुछ कोशिश की है लेकिन मुझे इससे रिक्त परिणाम मिल गया है। अगर वह अपने पूरे कोड तो है

<?php 
if (isset($_COOKIE['vaccine'])) { 
setcookie('vaccine',$vaccine); 
foreach ($_COOKIE[$vaccine] as $vaccine){ ?> 

<div class="control-group"> 
<label class="control-label"> 
<?php echo '&nbsp'.'<a href="javascript:void(0);" rel="tooltip"  
title="Delete" onclick="delete_vaccination('.$vaccine->vaccination_record_id.');"><i class="icon-minus-sign"></i></a>'.'';?><?php echo $vaccine->vaccination_record_brand;?> 

</label> 
</div> 

<?php }} ?> 
+0

'$ vaccine' का मूल्य क्या है? –

+1

अनुस्मारक: कुकीज़ केवल अगले अनुरोध पर दिखाई देती है। 'Setcookie' का उपयोग करके कुकी में जो चीज आप चिपकते हैं वह स्क्रिप्ट पर उपयोगकर्ता की अगली कॉल तक '$ _COOKIE' में दिखाई नहीं देगी। – Charles

उत्तर

2

आप इसके लिए सत्र का उपयोग कर सकते हैं (चाहिए?)। कुकीज़ अस्थायी नहीं हैं, वे क्लाइंट के कंप्यूटर पर संग्रहीत हैं। सत्र अस्थायी हैं, वे जीवित हैं जब तक कि आप उन्हें नष्ट नहीं करते।

इसके अलावा, आप अपने PHP में कुछ त्रुटियों (ताकि कुकी हैंडलिंग में ज्यादा नहीं) है: $_COOKIE[$vaccine]अपने $_COOKIE सरणी में $vaccine का मूल्य भिन्नता होगा। $vaccine एक सरणी प्रतीत होता है, तो आप $_COOKIE["Array"] देख रहे हैं। इसके अलावा के रूप में आप एक कुकी में एक वस्तु लगा रहे हैं, तो आप serialize/unserialize के पास है, स्थापित करने या कुकी होने से पहले

foreach ($_COOKIE["vaccine"] as $vaccine) 

,:: फिर

// fetch the vaccines somewhere first 
setcookie('vaccine',serialize($vaccines)); 

, अंत में आप इस प्रकार यह तय करने के लिए चाहता हूँ , जब कुकी सेट की जाती है, तो आप कुकी क्यों सेट करते हैं? सेट करते समय आपको इसे पढ़ना चाहिए।

पूरा कोड:

<?php 
if (isset($_COOKIE['vaccine'])) { 
    $vaccines = unserialize($_COOKIE['vaccine']); 
    foreach ($vaccines as $vaccine){ ?> 

     <div class="control-group"> 
     <label class="control-label"> 
     <?php echo '&nbsp'.'<a href="javascript:void(0);" rel="tooltip"  
      title="Delete" onclick="delete_vaccination('.$vaccine->vaccination_record_id.');"> 
      <i class="icon-minus-sign"></i></a>'.'';?> 
      <?php echo $vaccine->vaccination_record_brand;?> 

     </label> 
     </div> 

<?php }} ?> 
+0

धैर्यपूर्वक मुझे यह बताने के लिए बहुत बहुत धन्यवाद। – claire

1

जहां है डेटा है कि $ टीका में चला जाता है:

यहाँ मेरी कोड है? ऐसा लगता है कि आप उस कुकी को खाली होने के लिए सेट करते हैं।

तब कोड बग भी हैं; $ _COOKIE [$ टीका] के बजाय foreach $ _COOKIE ['टीका'] होना चाहिए। लेकिन फिर कुकीज़ और सरणी के बारे में टिप्पणियों के लिए नीचे देखें।

इसके अतिरिक्त आप एक कुकी में एक PHP सरणी स्टोर नहीं कर सकते हैं। कुकी में इसे संग्रहीत करते समय आपको सरणी को क्रमबद्ध करना होगा, और जब आप कुकी को वापस लेते हैं, तो एक PHP सरणी में इसे बेअसर करना होगा। या तो, या कुकीज़ मैनुअल में उदाहरण # 3 देखें - http://php.net/manual/en/function.setcookie.php कुकीज़ में सरणी से निपटने के तरीके पर। सावधान रहें कि अगर आप इस तरह से सरणी कुकीज़ का उपयोग करने के लिए उपयोग करते हैं, तो कई कुकीज़ सेट की जाती हैं। जो एक समस्या हो सकती है। और इसलिए आप serialization के बारे में सोचना चाह सकते हैं।

सीरियलाइजेशन का एक कार्यान्वयन PHP मैनुअल में सेटकुकी प्रविष्टि में दिया गया है। मैनुअल पेज में 'cwillard at fastmail dot fm' द्वारा टिप्पणी को ऊपर दिया गया है।

इसके अलावा आपके द्वारा सेट की गई कुकीज केवल अगले पृष्ठ लोड पर पहुंच योग्य होगी। यहां तक ​​कि जब आप $ टीका में डेटा डालते हैं, तो आपके आस-पास की पहली बार एक खाली दिखाई देगी। पृष्ठ रीलोड पर आपको देखना चाहिए कि

+0

मुझे नहीं पता कि कुकी कैसे सेट करें, हालांकि मैंने print_r $ टीकाकरण करने की कोशिश की है और यह सरणी देता है। प्रतिक्रियाओं के लिए धन्यवाद .. – claire

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