পিএইচপি(৫) -কুকি
এই অধ্যায়ে আপনি কুকি সম্মন্ধে জানবেন। একজন ইউজারকে আইডেন্টিফাই করতে প্রায়ই কুকি(cookie) ব্যবহার করা হয়।
কুকি কি?
কুকি হলো একটি ছোট্ট ফাইল। সার্ভার এই ফাইলকে ইউজারের কম্পিউটারে সংস্থাপন(embed) করে রাখে। প্রত্যেকবার ঐ একই কম্পিউটার থেকে ব্রাউজার এর মাধ্যমে যখন সার্ভারে একটি পেজের জন্য রিকুয়েস্ট পাঠানো হয় তখন ঐ কম্পিউটার থেকে পেজ রিকুয়েস্টের পাশাপাশি কুকিটিও সেন্ড হয়।
পিএইচপির সাহায্যে আপনি কুকি ভ্যালু তৈরি করতে পারবেন এবং উদ্ধারও করতে পারবেন।
পিএইচপির সাহয্যে কুকি তৈরি
setcookie() ফাংশনের মাধ্যমে কুকি তৈরি করা হয়।
সিনট্যাক্স
setcookie(name, value, expire, path, domain, secure, httponly);
শুধুমাত্র name প্যারামিটারটি আবশ্যক। অন্যান্য সকল প্যারামিটারগুলো হলো ঐচ্ছিক।
পিএইচপি কুকি তৈরি/উদ্ধার
নিম্নের উদাহরনে পিএইচপি কুকি তৈরি করে দেখানো হলোঃ
<?php
//কুকি ভ্যারিয়েবল তৈরি
$cookieName = "user";
//কুকি ভ্যালু সেট
$cookieValue = "তামজিদ হাসান";
setcookie($cookieName, $cookieValue, time() + (86400 * 30), "/");
// ৮৬৪০০ সেকেন্ডে = ১ দিন
?>
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
// কুকি সেট করা হয়েছে কিনা চেক করা
if(!isset($_COOKIE[$cookieName])) {
echo " '" . $cookieName . "' কুকিটি সেট করা হয়নি!";
} else {
echo " '" . $cookieName . "' কুকিটি সেট করা হয়েছে!<br>";
echo "কুকি ভ্যালুঃ " . $_COOKIE[$cookieValue];
}
?>
</body>
</html>
উদাহরণের ব্যাখ্যা
- উপরের উদাহরণে "তামজীদ হাসান" ভ্যালুযুক্ত একটি কুকি তৈরি করা হয়েছে এবং যার নাম দেওয়া হয়েছে "user"।
- ৩০ দিন(৮৬৪০০ * ৩০) পরে কুকিটির মেয়াদর্ত্তীন্ন(expire) হবে। "/" মানে হলো কুকিটি সমগ্র ওয়েবসাইট জুড়েই বিদ্যমান থাকবে। এছাড়া আপনি আপনার প্রয়োজন মতো ডিরেক্টরি সেট করে নিতে পারবেন।
- isset() ফাংশন ব্যবহার করে কুকি সেট করা হয়েছে কিনা চেক করা হয়।
- কুকি সেট করা হলে আমরা গ্লোবাল ভ্যারিয়েবল $_COOKIE এর মাধ্যমে "user" কুকির ভ্যালু উদ্ধার করবো।
নোটঃ setcookie() ফাংশনটি অবশ্যই <html> ট্যাগ এর উপরে(আগে) ব্যবহার করতে হবে।
নোটঃ যখন কুকি পাঠানো হয় তখন ভ্যালু স্বয়ংক্রিয়ভাবে URL encoded হয় এবং যখন গ্রহণ করা হয় তখন স্বয়ংক্রিয়ভাবে decoded হবে।
URL encoding প্রতিরোধ করার জন্য setrawcookie() ফাংশনটি ব্যবহার করুন।
কুকি ভ্যালু পরিবর্তন করা
একটি কুকির ভ্যালু পরিবর্তন(modify) করার জন্য setcookie() ফাংশন ব্যবহার করে পূনরায় কুকিটিকে সেট করতে হয়।
<?php
$cookieName = "user";
$cookieValue = "তামজীদ হাসান";
setcookie($cookieName, $cookieValue, time() + (86400 * 30), "/");
// ৮৬৪০০ সেকেন্ডে = ১ দিন
?>
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
if(!isset($_COOKIE[$cookieName])) {
echo " '" . $cookieName . "' কুকিটি সেট করা হয়নি!";
} else {
echo " '" . $cookieName . "' কুকিটি সেট করা হয়েছে!<br>";
echo "কুকি ভ্যালুঃ " . $_COOKIE[$cookieValue];
}
?>
</body>
</html>
কুকি ডিলেট করা
কুকি ডিলেট করার জন্য setcookie() ফাংশন এর expire প্যারামিটারে মেয়াদ উত্তীর্ণ তারিখ ব্যবহার করুনঃ
?php
// মেয়াদ উত্তীর্ণের তারিখ ১ঘন্টা আগে সেট করা হয়েছে।
setcookie("user", "", time() - 3600);
?>
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
echo "'user' কুকিটি ডিলেট হয়েছে।";
?>
</body>
</html>
কুকি সক্রিয় আছে কিনা চেক করা
নিচের উদাহরণে একটি ছোট php স্ক্রিপ্ট তৈরি করা হয়েছে যা কুকি সক্রিয়(Enable) আছে কিনা চেক করবে।
প্রোগ্রামের প্রথমেই setcookie() ফাংশন ব্যবহার করে একটি কুকি তৈরি করে নেওয়া হয়েছে এবং তারপরে count() ফাংশনের মধ্যে $_COOKIE অ্যারে ভ্যারিয়েবলকে প্যারামিটার হিসাবে ব্যবহার করে কুকি সক্রিয় আছে কিনা চেক করা হয়েছে।
<?php
setcookie("testCookie", "test", time() + 3600, '/');
?>
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "কুকি enable রয়েছে।";
} else {
echo "কুকি disable রয়েছে।";
}
?>
</body>
</html>