2012-01-26 18 views
5

यहाँ की स्थापना क्या मुझे आशा है कि एक त्वरित सवाल यह है कि है ...एक साइट की व्यापक कुकी

मैं उस कुकी sitewide इस्तेमाल किया जा सकता स्थापित करने के लिए कोशिश कर रहा हूँ। मैं एक लीड पीढ़ी प्रकार साइट बना रहा हूँ। मैं चाहता हूं कि उपयोगकर्ता अनन्य जानकारी तक पहुंचने के लिए एक फॉर्म भरें। एक बार फॉर्म भरने के बाद, उनके पास जानकारी तक पहुंच है।

जब मैं उपयोगकर्ता फॉर्म को सबमिट करता हूं तो मैं एक कुकी छोड़ रहा हूं ताकि अगली बार जब वे साइट पर जाएं तो वे सीधे सामग्री पर जा सकें। वे जिस फॉर्म को भरते हैं वह साइट पर प्रत्येक पृष्ठ की साइडबार में है। जब उपयोगकर्ता एक पृष्ठ पर फॉर्म भरता है, तो उसे साइट के किसी भी पेज पर नहीं देखना चाहिए।

सब कुछ काम कर रहा है, साइटसाइड बिट को छोड़कर। मुझे लगता है कि इस मुद्दे को कोड के इस बिट में है:

function set_cookie(name, value, expires, path, domain, secure){ 
if (!expires){expires = new Date()} 
document.cookie = name + "=" + escape(value) + 
((expires == null) ? "" : "; expires=" + expires.toGMTString()) + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
((secure == null) ? "" : "; secure"); 
} 

लेकिन यहाँ पूर्ण कोड के नीचे है। बहुत बहुत धन्यवाद!

<script type="text/javascript"> 
<!-- 
cookie_name="landasp" 
expdays=365 

// An adaptation of Dorcht's cookie functions. 

function set_cookie(name, value, expires, path, domain, secure){ 
if (!expires){expires = new Date()} 
document.cookie = name + "=" + escape(value) + 
((expires == null) ? "" : "; expires=" + expires.toGMTString()) + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
((secure == null) ? "" : "; secure"); 
} 

function get_cookie(name) { 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg){ 
return get_cookie_val(j); 
} 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 
} 
return null; 
} 

function get_cookie_val(offset){ 
var endstr = document.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr)); 
} 

function delete_cookie(name,path,domain){ 
document.cookie = name + "=" + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
"; expires=Thu, 01-Jan-00 00:00:01 GMT"; 
} 

function saving_cookie(){ 
var expdate = new Date(); 
expdate.setTime (expdate.getTime() + (expdays*24*60*60*1000*30)); //set for one month 
Data="cooked" 

set_cookie(cookie_name,Data,expdate) 
} 

function get_cookie_data(){ 
inf=get_cookie(cookie_name) 
if(!inf){ 
document.getElementById("display1").style.display="block" 
} 
else{ 
document.getElementById("display2").style.display="block" 
} 
} 

// --> 
</script> 
+0

स्टैक ओवरफ्लो में आपका स्वागत है! अगर आपको लगता है कि उत्तर आपके प्रश्न का उत्तर देता है तो कृपया इसे हरे रंग के चेकबॉक्स पर क्लिक करके उत्तर के रूप में चिह्नित करें। – vidstige

उत्तर

10

आप एक साइट चौड़ा रास्ता निर्दिष्ट करना चाहिए अगर पथ नहीं दिया जाता है:

((path == null) ? "; path=/" : "; path=" + path) + 

आप Firebug का उपयोग कर कुकीज़ डीबग कर सकते हैं, बस सेट कुकीज़ पर एक नजर है।

+1

आपको बहुत बहुत धन्यवाद! मैं अपने मस्तिष्क को ऐसा करने की कोशिश कर रहा हूं! – Ash

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