2011-09-13 8 views
5

पर PHP या जावास्क्रिप्ट के माध्यम से कुकीज़ नहीं पढ़ सकता है, वर्तमान में PHP या जावास्क्रिप्ट का उपयोग करके कुकीज़ पढ़ने की कोशिश करते समय मुझे कुछ समस्याएं हैं। मैं का उपयोग कर की कोशिश की है:आईपैड

if(!$_COOKIE['popup_closed'] 
&& !isset($_COOKIE['username']) 
&& !isset($_COOKIE['password']) 
) 

और मैं कोशिश की है:

if(
$.cookie('popup_closed') == null 
&& $.cookie('username') == null 
&& $.cookie('password') == null) { 
doStuff(); 
} 

(jquery.cookie प्लगइन का उपयोग करना)

और उनमें से न आईपैड पर काम करते हैं। यह सभी ब्राउज़रों पर ठीक काम करता है, मैंने इस मुद्दे को गुगल करने का प्रयास किया है लेकिन आईपैड पर कुकीज़ पढ़ने पर ज्यादा जानकारी नहीं है।

किसी भी मदद के लिए धन्यवाद जो आप लोग दे सकते हैं!

+0

क्या आपका कोड सफारी (मैक या पीसी पर) पर ठीक काम करता है? इसे आईपैड पर समान रूप से काम करना चाहिए। – haynar

+0

यह वास्तव में करता है। और आईपैड पर कुकी चालू भी हैं। –

+0

दुर्भाग्य से मुझे नहीं पता कि यह क्यों काम नहीं करता है, लेकिन कुछ समय पहले मुझे सभी सफारी संस्करण (मैक, पीसी, आईपैड इत्यादि) पर कुकीज़ से संबंधित समस्या थी। यह सफारी का अंतर्निहित प्रतिबंध था (सफारी तृतीय पक्ष साइटों से कुकीज़ स्वीकार नहीं करता है जब तक कि उपयोगकर्ता स्पष्ट रूप से वेब पेज से सहभागिता नहीं करता)। शायद आप iframe से कुकीज़ का उपयोग करने की कोशिश कर रहे हैं? – haynar

उत्तर

7

यह वास्तव में एक कामकाज है, लेकिन यदि आप उपलब्ध हैं तो स्थानीय संग्रहण का उपयोग कर सकते हैं - कम से कम मैंने इसे आईपैड/आईफोन में सफलतापूर्वक उपयोग किया है।

उदाहरण के लिए इस तरह के समाधान के साथ।

function saveData(name, value) { 
    if (typeof(localStorage) != 'undefined') { 
     localStorage.setItem(name, value); 
    } else { 
     createCookie(name, value, 7); 
    } 
} 

function loadData(name) { 
    var temp_value = ''; 

    if (typeof(localStorage) != 'undefined') { 
     temp_value = localStorage.getItem(name); 
    } else { 
     temp_value = readCookie(name); 
    } 

    return temp_value; 
} 

function eraseData(name) { 
    if (typeof(localStorage) != 'undefined') { 
     localStorage.removeItem(name); 
    } else { 
     eraseCookie(name); 
    } 

} 

function createCookie(name,value,days) { 
    var expires = ""; 

    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
     expires = "; expires=" + date.toGMTString(); 
    } 
    else { 
     expires = ""; 
    } 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') { 
      c = c.substring(1,c.length); 
     } 
     if (c.indexOf(nameEQ) === 0) { 
      return c.substring(nameEQ.length, c.length); 
     } 
    } 
    return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 
+1

असल में यह एक सुंदर निफ्टी वर्कअराउंड है, +1 – Aidiakapi

+0

हाय मार्कस, इसके लिए धन्यवाद! मैं देखूंगा कि यह अगले मंगलवार को काम करता है क्योंकि जिस दिन मैं साइट पर काम करता हूं। अगर यह काम करता है तो मैं मंगलवार को आपका जवाब स्वीकार करूंगा :) धन्यवाद। –

+0

हाय, कोई समस्या नहीं, समाधान सुनने के लिए अच्छा आपके लिए उपयोगी था! – Marcus

0

आप setcookie के बारे में manual पर एक नज़र है? आपको सभी चर का उपयोग करना चाहिए, शायद यह इस तथ्य को हल करता है कि आप जेएस के साथ अपनी कुकीज़ तक नहीं पहुंच सकते हैं? साथ ही, कुकीज तक पहुंचने के लिए मूल जेएस का उपयोग करना (jQuery की बजाय), क्या यह काम नहीं करता है?