कुकी क्या है?
एक कुकी एक छोटी फाइल है जो कि 4KB के अधिकतम आकार के साथ होती है जिसे वेब सर्वर क्लाइंट कंप्यूटर पर स्टोर करता है।
एक बार कुकी सेट हो जाने के बाद, सभी पृष्ठ अनुरोध करते हैं कि कुकी नाम और मान वापस करें।
एक कुकी को केवल उस डोमेन से पढ़ा जा सकता है जिसे वह जारी किया गया है। उदाहरण के लिए, डोमेन www.guru99.com का उपयोग करके एक कुकी सेट को डोमेन career.guru99.com से नहीं पढ़ा जा सकता है।
इंटरनेट पर अधिकांश वेबसाइटें विज्ञापन जैसे अन्य डोमेन से तत्वों को प्रदर्शित करती हैं। इन तत्वों की सेवा करने वाले डोमेन अपनी खुद की कुकीज़ भी सेट कर सकते हैं। इन्हें थर्ड पार्टी कुकीज़ के रूप में जाना जाता है।
एक उपयोगकर्ता द्वारा बनाई गई कुकी केवल उन्हें दिखाई दे सकती है। अन्य उपयोगकर्ता इसका मूल्य नहीं देख सकते।
अधिकांश वेब ब्राउज़र में कुकीज़, थर्ड पार्टी कुकी या दोनों को निष्क्रिय करने के विकल्प होते हैं।
अगर ऐसा है तो PHP URL में कुकी टोकन को पास करके प्रतिक्रिया करता है।
नीचे दिखाया गया चित्र दिखाता है कि कुकीज़ कैसे काम करती हैं।
यहाँ,
1) एक उपयोगकर्ता कुकीज़ रखने वाले पृष्ठ के लिए अनुरोध करता है
2) सर्वर उपयोगकर्ता के कंप्यूटर पर कुकी सेट करता है
3) उपयोगकर्ता से अन्य पेज अनुरोध कुकी नाम और मूल्य वापस कर देंगे
इस ट्यूटोरियल में, आप सीखेंगे-
- कुकीज़ का उपयोग क्यों और कब करें?
- कुकीज़ बनाना
- कुकी मान को पुनः प्राप्त करना
- कुकी हटाएं
- एक सत्र क्या है?
- सत्र का उपयोग क्यों और कब करना है?
- एक सत्र बनाना
- सत्र चर नष्ट करना
कुकीज़ का उपयोग क्यों और कब करें?
-
Http एक स्टेटलेस प्रोटोकॉल है; कुकीज़ हमें उपयोगकर्ता के कंप्यूटर पर संग्रहीत छोटी फ़ाइलों का उपयोग करके एप्लिकेशन की स्थिति को ट्रैक करने की अनुमति देती हैं।
पथ संग्रहीत किए गए थे जो ब्राउज़र पर निर्भर करता है।
Internet Explorer आमतौर पर उन्हें Temporal Internet Files फ़ोल्डर में संग्रहीत करता है।
-
उपयोगकर्ता अनुभव को निजीकृत करना - यह उपयोगकर्ताओं को उनकी वरीयताओं का चयन करने की अनुमति देकर प्राप्त किया जाता है।
पेज ने अनुरोध किया कि कुकीज़ में सेट वरीयताओं के आधार पर व्यक्तिगत रूप से अनुसरण किया जाता है।
- उपयोगकर्ता द्वारा देखे गए पृष्ठों को ट्रैक करना
कुकीज़ बनाना
आइए अब एक कुकी बनाने के लिए उपयोग किए जाने वाले मूल सिंटैक्स को देखें।
यहां,
- Php “setcookie” कुकी को बनाने के लिए इस्तेमाल किया जाने वाला PHP फंक्शन है।
- "कुकी_नाम" कुकी का नाम है जिसे सर्वर $ _COOKIE सरणी चर से इसके मूल्य को पुनर्प्राप्त करते समय उपयोग करेगा। यह अनिवार्य है।
- "कुकी_वेल्यू" कुकी का मूल्य और इसकी अनिवार्यता है
- "Expiry_time]" वैकल्पिक है; इसका उपयोग कुकी के लिए समाप्ति समय निर्धारित करने के लिए किया जा सकता है जैसे कि 1 घंटे। PHP समय () फ़ंक्शन प्लस या माइनस 0 सेकंड यानी 1 (समय) + 3600 से अधिक की संख्या का उपयोग करके 1 घंटे के लिए सेट किया गया है।
- "कुकी_पाठ]" वैकल्पिक है; इसका उपयोग सर्वर पर कुकी पथ सेट करने के लिए किया जा सकता है। फॉरवर्ड स्लैश "/" का मतलब है कि कुकी पूरे डोमेन पर उपलब्ध कराई जाएगी। उप निर्देशिका कुकी उप पहुँच को सीमित करती है।
- "एक डोमेन]" वैकल्पिक है, इसका उपयोग कुकी एक्सेस पदानुक्रम को परिभाषित करने के लिए किया जा सकता है अर्थात www.cookiedomain.com का अर्थ है संपूर्ण डोमेन जबकि www.sub.cookiedomain.com कुकी एक्सेस को www.sub.cookiedomain.com और उसके उप तक सीमित करता है डोमेन। ध्यान दें कि जब तक कुल वर्ण 253 वर्णों से अधिक न हों, तब तक एक उपडोमेन का उपडोमेन होना संभव है।
- "सुरक्षित]" वैकल्पिक है, डिफ़ॉल्ट गलत है। इसका उपयोग यह निर्धारित करने के लिए किया जाता है कि कुकी को https के माध्यम से भेजा जाता है या नहीं, यदि यह सही पर सेट है या http: यदि इसे गलत पर सेट किया गया है।
- "[Httponly]" वैकल्पिक है। यदि यह सही पर सेट है, तो केवल क्लाइंट साइड स्क्रिप्टिंग भाषाएं अर्थात जावास्क्रिप्ट उन्हें एक्सेस नहीं कर सकती हैं।
नोट: HTML ओपनिंग टैग से पहले php सेट कुकी फंक्शन को निष्पादित किया जाना चाहिए।
आइए अब एक उदाहरण देखें जो कुकीज़ का उपयोग करता है।
हम एक मूल कार्यक्रम बनाएंगे जो हमें उपयोगकर्ता नाम को कुकी में संग्रहीत करने की अनुमति देता है जो दस सेकंड के बाद समाप्त हो जाती है।
नीचे दिए गए कोड से ऊपर के उदाहरण "कुकी. एफपी" के कार्यान्वयन का पता चलता है।
आउटपुट:
the cookie has been set for 60 seconds
कुकी मान को पुनः प्राप्त करना
निम्नलिखित कोड के साथ एक और फ़ाइल बनाएं जिसका नाम है "cookies_read.php"।
आउटपुट:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
नोट: $ _COOKIE एक सुपर वैश्विक चर में बनाया गया PHP है।
इसमें सभी सेट कुकीज़ के नाम और मूल्य शामिल हैं।
मूल्यों की संख्या जो
$ _COOKIE सरणी में php.ini में निर्धारित मेमोरी साइज पर निर्भर करता है।
डिफ़ॉल्ट मान 1GB है।
हमारे आवेदन का परीक्षण।
मान लेते हैं कि आपने phpus फ़ोल्डर में अपनी PHP फ़ाइलों को सहेजा है।
- चरण 1 - अपना वेब ब्राउज़र खोलें और URL http: //localhost/phptuts/cookies_read.php दर्ज करें
नोट: केवल एक खाली सरणी प्रदर्शित की गई है
- चरण 2 - ब्राउज़र को URL http: //localhost/phptuts/cookies.php
- चरण 3 - पहले टैब पर वापस जाएं फिर ताज़ा करें बटन पर क्लिक करें
एक मिनट के लिए रुकें फिर ताज़ा बटन पर क्लिक करें। आपको क्या परिणाम मिला?
कुकी हटाएं
- यदि आप इसकी समाप्ति समय से पहले एक कुकी को नष्ट करना चाहते हैं, तो आप समय समाप्त होने का समय निर्धारित करते हैं जो पहले ही बीत चुका है।
- निम्नलिखित कोड के साथ एक नया दायर किया गया जिसका नाम कुकी_डेस्ट्रो.फपी है
- कुकी मान प्राप्त करने पर उपरोक्त अनुभाग से चरण 1 से 3 तक दोहराएं।
- URL http: //localhost/phptuts/cookie_destroy.php खोलें
- URL पर स्विच करें http: //localhost/phptuts/cookies_read.php यह क्या परिणाम प्रदर्शित करता है?
एक सत्र क्या है?
- एक सत्र सर्वर पर संग्रहीत एक वैश्विक चर है।
- प्रत्येक सत्र को एक अद्वितीय आईडी दी जाती है जिसका उपयोग संग्रहीत मूल्यों को प्राप्त करने के लिए किया जाता है।
- जब भी कोई सत्र बनाया जाता है, तो अद्वितीय सत्र आईडी वाला एक कुकी उपयोगकर्ता के कंप्यूटर पर संग्रहीत होता है और सर्वर के लिए हर अनुरोध के साथ वापस आ जाता है। यदि क्लाइंट ब्राउज़र कुकीज़ का समर्थन नहीं करता है, तो URL में अद्वितीय php सेशन आईडी प्रदर्शित की जाती है
- कुकीज़ की तुलना में सत्रों में अपेक्षाकृत बड़े डेटा को संग्रहीत करने की क्षमता होती है।
- ब्राउज़र बंद होने पर सत्र मान स्वचालित रूप से हटा दिए जाते हैं। यदि आप मानों को स्थायी रूप से संग्रहीत करना चाहते हैं, तो आपको उन्हें डेटाबेस में संग्रहीत करना चाहिए।
- $ _COOKIE सरणी चर की तरह, सत्र चर $ _SESSION सरणी चर में संग्रहीत किए जाते हैं। कुकीज़ की तरह, सत्र को किसी भी HTML टैग से पहले शुरू किया जाना चाहिए।
सत्र का उपयोग क्यों और कब करना है?
- आप महत्वपूर्ण जानकारी जैसे उपयोगकर्ता आईडी सर्वर पर अधिक सुरक्षित रूप से संग्रहीत करना चाहते हैं जहां दुर्भावनापूर्ण उपयोगकर्ता उनके साथ गुस्सा नहीं कर सकते।
- आप एक पृष्ठ से दूसरे पृष्ठ पर मानों को पास करना चाहते हैं।
- आप उन ब्राउज़र पर कुकीज़ का विकल्प चाहते हैं जो कुकीज़ का समर्थन नहीं करते हैं।
- आप URL में उन्हें पार करने की तुलना में वैश्विक चर को एक कुशल और अधिक सुरक्षित तरीके से संग्रहीत करना चाहते हैं
- आप एक खरीदारी कार्ट जैसी एक एप्लीकेशन विकसित कर रहे हैं जिसमें 4KB से बड़ी क्षमता वाली अस्थायी स्टोर जानकारी है।
एक सत्र बनाना
एक सत्र बनाने के लिए, आपको पहले PHP session_start फ़ंक्शन को कॉल करना होगा और फिर $ _SESSION सरणी चर में अपने मूल्यों को संग्रहीत करना होगा।
मान लीजिए कि हम यह जानना चाहते हैं कि किसी पृष्ठ को कितनी बार लोड किया गया है, हम ऐसा करने के लिए एक सत्र का उपयोग कर सकते हैं।
नीचे दिया गया कोड दिखाता है कि सत्रों से मान कैसे बनाएं और पुनर्प्राप्त करें
आउटपुट:
You are visitor number 1
सत्र चर नष्ट करना
Session_destroy () फ़ंक्शन का उपयोग संपूर्ण Php सत्र चर को नष्ट करने के लिए किया जाता है।
यदि आप केवल सत्र एकल आइटम को नष्ट करना चाहते हैं, तो आप अनसेट () फ़ंक्शन का उपयोग करते हैं।
नीचे दिए गए कोड से पता चलता है कि दोनों तरीकों का उपयोग कैसे किया जाता है।
Session_destroy सत्र से जुड़े सभी सत्र डेटा को हटा देता है।
परेशान केवल व्यक्तिगत सत्र चर को मुक्त करता है।
अन्य डेटा बरकरार है।
सारांश
- कुकीज़ उपयोगकर्ता के कंप्यूटर पर सहेजी गई छोटी फाइलें हैं
- कुकीज़ केवल जारी करने वाले डोमेन से पढ़े जा सकते हैं
- कुकीज़ का समय समाप्त हो सकता है, यदि यह सेट नहीं है, तो कुकी बंद हो जाती है जब ब्राउज़र बंद हो जाता है
- सत्र सर्वर पर संग्रहीत वैश्विक चर की तरह हैं
- प्रत्येक सत्र को एक विशिष्ट पहचान आईडी दी जाती है जिसका उपयोग किसी उपयोगकर्ता के लिए चर को ट्रैक करने के लिए किया जाता है।
- किसी भी HTML टैग को ब्राउज़र में भेजे जाने से पहले कुकीज़ और सत्र दोनों को शुरू किया जाना चाहिए।