PHP cookie एक छोटी फ़ाइल होती है जिसे वेब सर्वर, क्लाइंट कंप्यूटर पर स्टोर करता है। उनका इस्तेमाल यूजर के username, name, age आदि जैसी सूचनाओं पर नज़र रखने के लिए किया जाता है।
आइए इसे step by step समझते हैं कि यह कैसे काम करता है:
- जब भी हम किसी वेबसाइट पर जाते हैं, सर्वर स्क्रिप्ट हमारे ब्राउज़र पर cookies का एक सेट भेजती है।
- यूजर के ब्राउज़र इस जानकारी को local machine पर स्टोर करता है।
- अगली बार जब यूजर उसी वेबसाइट को खोलता है तो ब्राउज़र वेब सर्वर को request भेजता है, फिर वह उन cookies की जानकारी सर्वर को भेजता है और सर्वर उस जानकारी का उपयोग यूजर की पहचान करने और यूजर के interests के अनुसार contents को personalize करने के लिए करता है।
Creating PHP Cookies
PHP में एक cookie बनाई जाती है, setcookie()
फ़ंक्शन के साथ। स्क्रिप्ट द्वारा generated किसी भी आउटपुट से पहले इस फ़ंक्शन को कॉल करने की आवश्यकता है अन्यथा cookie सेट नहीं की जाएगी, इसलिए इसे <HTML> टैग से पहले call किया जाना चाहिए।
इस फ़ंक्शन के लिए सामान्य रूप से अधिकतम छह arguments की आवश्यकता होती है। प्रत्येक cookie के लिए, setcookie() फ़ंक्शन को अलग से कॉल करना पड़ता हैं।
setcookie(name, value, expire, path, domain, security);
setcookie()
फ़ंक्शन के parameters के निम्नलिखित अर्थ हैं:
Parameter | Description |
---|---|
name | Cookie का नाम। |
value | Cookie की वैल्यू। संवेदनशील (sensitive) जानकारी स्टोर न करें क्योंकि यह वैल्यू यूजर के कंप्यूटर पर स्टोर होता है। |
expires | Cookie की Expiry date UNIX timestamp format में। उस समय के बाद cookie, inaccessible हो जाएगी। यदि यह parameter सेट नहीं है तो वेब ब्राउज़र बंद होने पर cookie अपने आप expire हो जाएगी। |
path | इसका उपयोग सर्वर पर path निर्दिष्ट (specify) करने के लिए किया जाता है, जिसके लिए cookie उपलब्ध होगी। यदि / सेट किया जाता है, तो cookie पूरे domain में उपलब्ध होगी। |
domain | वह domain को निर्दिष्ट करता है, जिसके लिए cookie उपलब्ध है जैसे www.example.com |
secure | इस फ़ील्ड को यह इंगित करने के लिए 1 सेट किया जा सकता है कि कुकी को केवल HTTPS का उपयोग करके सुरक्षित ट्रांसमिशन द्वारा भेजा जाना चाहिए अन्यथा 0 पर सेट किया जाता है जिसका अर्थ है कि कुकी को नियमित HTTP द्वारा भेजा जा सकता हैं। |
आइए एक cookie बनाते हैं जिसका name "user" होगा और उसका वैल्यू "Brajlal" है। यह cookie पुरे 30 दिनों (86400 * 30) के बाद समाप्त हो जाएगी और पूरी वेबसाइट के लिए उपलब्ध होगी।
<?php
// 86400 = 1 day (24 hrs * 60 min * 60 sec)
setcookie("user", "Brajlal", time() + (86400 * 30), "/", "", 0);
?>
<html>
<body>
<?php
echo "Setting Cookies"
?>
</body>
</html>
Accessing PHP Cookies
हम global variable $_COOKIE
का उपयोग करके cookie के वैल्यू को पुनः प्राप्त (retrieve) कर सकते हैं। यह एक associative array है जिसमें वर्तमान request में ब्राउज़र द्वारा भेजे गए सभी cookie वैल्यू का रिकॉर्ड होता है।
रिकॉर्ड्स को एक list के रूप में स्टोर किया जाता है जहां cookie का नाम key के रूप में उपयोग किया जाता हैं।
<?php
setcookie("user", "Brajlal", time() + (86400 * 30), "/", "", 0);
setcookie("age", 27);
?>
<html>
<body>
<?php
echo $_COOKIE["user"];
echo "<br>";
echo $_COOKIE["age"];
?>
</body>
</html>
Brajlal
27
Cookie के वैल्यू को access करने से पहले हमेशा यह जांचने की सलाह दी जाती है कि cookie सेट है या नहीं। Cookie सेट है या नहीं, यह जांचने के लिए हम isset()
फ़ंक्शन का उपयोग करते हैं।
<?php
setcookie("user", "Brajlal", time() + (86400 * 30), "/", "", 0);
setcookie("age", 27);
?>
<html>
<body>
<?php
if (isset($_COOKIE["user"])) {
echo "Wlecome " . $_COOKIE["user"];
echo "<br>";
echo "Your age is: " . $_COOKIE["age"];
} else {
echo "Sorry...Not found";
}
?>
</body>
</html>
Welcome Brajlal
Your age is: 27
Deleting PHP Cookie
setcookie()
फ़ंक्शन का ही उपयोग किया जाता है किसी cookie को delete करने के लिए। इसके लिए expiry में किसी भी तिथि जो पहले ही समाप्त हो चुकी है उसका इस्तेमाल करते हैं।
<?php
setcookie("user", "", time() - 60, "/", "", 0);
setcookie("age", "", time() - 60);
?>
<html>
<body>
<?php
echo "Delating Cookies"
?>
</body>
</html>