2009-08-22 10 views
5

के कंप्यूटर पर ड्रूपल 6 में सत्र/कुकी स्टोर करने के लिए कैसे मैंने व्यूअर मॉड्यूल के साथ खोजक मॉड्यूल का उपयोग कर क्लाइंट वेबसाइट की खोज बनाई है। समस्या यह है कि मेरा ग्राहक चाहता है कि जब भी कोई उपयोगकर्ता किसी निश्चित क्षेत्र में व्यवसायों का चयन और खोज करता है, तो उसे विज़िटर के कंप्यूटर पर सत्र या कुकी के रूप में संग्रहीत किया जाना चाहिए। इससे यह सुनिश्चित होगा कि एक दोहराना आगंतुक उसी खोज को देखता है जिसे उसने पहले किया था। कृपया साइट की जांच करें: http://naplesres.designbracket.com/विज़िटर

इसके अलावा, मैं यह भी जानना चाहता हूं कि पहले खोज के आधार पर क्या मैं दृश्यों को इस तरह से कॉन्फ़िगर कर सकता हूं कि उनके स्थानीय क्षेत्र के केवल व्यवसाय पर ही शेष विचारों को पारित किया जा सके ऑटो या सौंदर्य आदि वेबसाइट पर वेबसाइट।

दस्तावेजों के लिंक के रूप में कोई मदद, पॉइंटर्स इसके बारे में कैसे जाना है, इसकी सराहना की जाएगी।

धन्यवाद

+0

क्या उपयोगकर्ता लॉग इन हैं? – googletorp

+0

खोज दोनों अज्ञात और साथ ही उपयोगकर्ताओं में लॉग इन की जा सकती है। असल में साइट को केवल उसी व्यक्ति द्वारा की गई खोज को याद रखने की आवश्यकता होती है और परिणामों का एक डिफ़ॉल्ट सेट फेंकना पड़ता है। – Sbhambry

उत्तर

3
बेशक यह किया जा सकता है के

, लेकिन यह यह कर के सामान्य Drupal तरीका नहीं है। आमतौर पर आप जो भी करते हैं, वह सत्र में जानकारी संग्रहीत करता है (sess_write/sess_read का उपयोग करें) या उपयोगकर्ता उपयोगकर्ता जानकारी में उपयोगकर्ता लॉग-इन है।

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

यदि आप इसे सत्र में रखते हैं, तो सत्र के समय तक इसे रखा जाएगा, लेकिन उसके बाद गायब हो जाएगा। अज्ञात उपयोगकर्ताओं के लिए, वास्तव में कोई बेहतर तरीका नहीं है। ओटीओएच, लॉग-इन उपयोगकर्ताओं के लिए, $user->data में जानकारी संग्रहीत करने का अर्थ है कि वे तब तक उपलब्ध होंगे जब तक आप उन्हें नहीं हटाते, क्योंकि उन्हें users टेबल में संग्रहीत किया जाएगा।

यह भी याद रखें कि अज्ञात से लॉग इन करने पर स्विच करते समय ड्रूपल सत्र कुकीज़ पुन: उत्पन्न होती हैं, लेकिन सत्र सामग्री को रखें, ताकि आप अज्ञात सत्र में डेटा डाल सकें और फिर भी जब उपयोगकर्ता लॉग इन करता है, और फिर उन्हें स्टोर करता है अपने खाते के डेटा में। यह कैसे काम करता है इसके बारे में विवरण के लिए includes/session.inc पर देखें।

9

यदि आपको कुछ ट्रैक रखने की आवश्यकता है और इसे लॉग इन करने वाले उपयोगकर्ता के साथ काम करने की आवश्यकता है, तो आप इसे ट्रैक रखने के लिए कुकी का उपयोग करना चाहते हैं। आप Drupal में अज्ञात आगंतुकों के लिए चीजों को स्टोर करने के लिए सत्र का उपयोग नहीं कर सकते हैं, क्योंकि यह उपयोगकर्ता ऑब्जेक्ट से जुड़ा हुआ है।

यहां एक विवरण है - http://www.w3schools.com/PHP/php_cookies.asp - लेकिन मुझे इसमें जाने दें।

आप सेटकुकी (नाम, मूल्य, समाप्ति) का उपयोग शुरू करते हैं - हम मान लेंगे कि हम इस मान को व्यवसाय_search पर कॉल करना चाहते हैं, और हम '80204' का परीक्षण मान उपयोग करेंगे, जो एक ज़िप कोड है - यह यदि आप 'डेनवर, सीओ' का उपयोग करते हैं तो ठीक काम करता है। हम इसके लिए, ओह, छह महीने की समय सीमा समाप्त नहीं करना चाहती है, तो हम कॉल करना चाहते हैं:

setcookie('business_search', '80204', time() + 3600 * 24 * 180); 

उस समय वहाँ का प्रतिनिधित्व करता है सेकंड के पास लगभग छह महीने अभी समय में जोड़ा जा रहा।

कुकी को बाद में प्राप्त करना और भी आसान है - बस $ _COOKIE ['business_search'] का उपयोग करें, और यह मान वापस कर देगा। तो, हम सिर्फ इस कोड का इस्तेमाल कर सकते: अगर आपको Drupal में रहना अपने क्लाइंट साइड कुकीज़ मिल रही है

<?php 
function saveSerch($search_term) { 
    setcookie('business_search', $search_term, time() + 3600 * 24 * 180); 
} 

function readSearch() { 
    return $_COOKIE['business_search']; 
} 
?> 
+1

-1। यह कुकीज़ का एक बहुत अच्छा विवरण है, लेकिन ड्रूपल ढांचे के संबंध में सवाल पूछा गया था। यह उत्तर ड्रूपल में सत्रों पर चर्चा नहीं करता है और इसके साथ एकीकृत करने की कोशिश करते समय भ्रम पैदा कर सकता है। –

+1

मैं कहूंगा कि ए -1 एक बहुत कठोर हो रहा है .. मुझे जवाब बहुत उपयोगी पाया गया और यह उपरोक्त उत्तर के संयोजन के साथ कुछ चीजों को स्पष्ट करने में मदद करता है। मैं केवल धन्यवाद जॉन कहूंगा :) – Sbhambry

+0

मैं ड्रूपल ढांचे के संबंध में जवाब दे रहा था, और मैंने पहले पैराग्राफ में ड्रूपल में सत्रों पर चर्चा की थी। बुद्धिमानी के लिए, "आप ड्रूपल में अज्ञात आगंतुकों के लिए चीजों को स्टोर करने के लिए सत्र का उपयोग नहीं कर सकते हैं, क्योंकि यह उपयोगकर्ता ऑब्जेक्ट से जुड़ा हुआ है।" इसलिए, मैं समझता हूं कि कुकीज़ के साथ कैसे करें, जो अज्ञात आगंतुकों के साथ काम करेगा। –

3

, पथ के लिए वैकल्पिक पैरामीटर का उपयोग करें।

उदाहरण:

setcookie('myCookieName', 'myCookieData', 0, '/');

फिर, अगले पृष्ठ लोड उत्पादन पर अपनी स्क्रीन करने के लिए कुकीज़। आपको आउटपुट में अपनी कुकी देखना चाहिए।

print_r($_COOKIE);

-या अधिक specifically-

print $_COOKIE['myCookieName'];

चीयर्स!

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