2010-02-18 21 views
5

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

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

यहाँ मैं क्या है कि काम करता है, लेकिन एक बार पुनः लोड करने की आवश्यकता है है:

setcookie("test",'1',time() + 3600,'/'); 
if(isset($_COOKIE['test'])){ 
    if(isset($_COOKIE['bfc_splash'])){}else{ 
     header("Location: splash/"); 
    } 
} 

मैं इस कोशिश की, लेकिन यह, सत्र की जानकारी एक कुकी में संग्रहीत किया जाता रहा है, क्योंकि यह सिर्फ असीम पुनर्निर्देश:

if(isset($_COOKIE['test'])){ 
    if(isset($_COOKIE['bfc_splash'])){}else{ 
     header("Location: splash/"); 
    } 
}elseif(!isset($_COOKIE['test']) && !isset($_SESSION['cookies'])){ 
    setcookie("test",'1',time() + 3600,'/'); 
    $_SESSION['cookies'] = '1'; 
    header("Location: index.php"); 
} 

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

उत्तर

2

आप एक सत्र का उपयोग कर सकते हैं और कुकी के बजाय जीईटी के माध्यम से सत्र आईडी प्रसारित कर सकते हैं।

देखें: http://php.net/manual/en/session.idpassing.php

2

यदि उपयोगकर्ता को कुकीज़ अक्षम कर दी गई है, तो आप यह बताने में सक्षम नहीं होंगे कि वह पहली बार साइट पर जा रहा है या नहीं, क्योंकि प्रत्येक यात्रा पहली यात्रा की तरह दिखाई देगी।

+0

ठीक है, thats क्यों मैं कभी नहीं * * छप पृष्ठ पर कुकीज़ अक्षम के साथ किसी रीडायरेक्ट करना चाहते हैं। – Karl

+0

आप यह बताने में सक्षम नहीं होंगे कि उपयोगकर्ता को कुकीज़ अक्षम है या पहली बार साइट पर जा रहा है। –

1

एक उदाहरण साइट, barackobama.com देख रहे हैं, जब आप स्प्लैश रीडायरेक्ट से होम पेज पर जाते हैं तो वे एक जीईटी वैरिएबल पास करते हैं। यह किसी को होम पेज देखने की अनुमति देता है अगर उनके पास कुकीज़ सक्षम नहीं हैं। वे बहुत अधिक परवाह नहीं करते हैं कि कुकीज वाले किसी भी व्यक्ति को शीर्ष पर होम लिंक पर क्लिक करने के बाद दोबारा रीडायरेक्ट किया जाएगा (जिसमें जीईटी वैरिएबल की कमी है)। चूंकि वे कुकीज़ अक्षम लोगों के बारे में परवाह नहीं करते हैं, इसलिए मैं सूट का पालन करूंगा क्योंकि मुझे बेहतर समाधान नहीं मिल रहा है।

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