PHP – کوکیها (Cookies)
کوکیها در PHP
کوکی چیست؟
کوکی (Cookie) برای شناسایی کاربران به کار میرود. کوکی یک فایل کوچک است که سرور بر روی رایانه کاربر قرار میدهد. هر بار که همان رایانه صفحهای را با مرورگر درخواست میکند، کوکی نیز ارسال میشود. با PHP، میتوانید هم کوکیها را ایجاد کنید و هم مقادیر آنها را بازیابی کنید.
ایجاد کوکیها با PHP
یک کوکی با استفاده از تابع setcookie()
ایجاد میشود.
نحوه استفاده
setcookie(name, value, expire, path, domain, secure, httponly);
تنها پارامتر name
الزامی است. سایر پارامترها اختیاری هستند.
ایجاد و بازیابی کوکی
مثال زیر یک کوکی به نام “user” با مقدار “John Doe” ایجاد میکند. این کوکی بعد از ۳۰ روز منقضی میشود (86400 * 30). علامت “/” به این معنی است که کوکی در کل وبسایت در دسترس است (در غیر این صورت، دایرکتوری مورد نظر خود را انتخاب کنید).
سپس مقدار کوکی “user” را با استفاده از متغیر جهانی $_COOKIE
بازیابی میکنیم. همچنین از تابع isset()
برای بررسی اینکه آیا کوکی تنظیم شده است یا خیر استفاده میکنیم:
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 روز
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "کوکی با نام '" . $cookie_name . "' تنظیم نشده است!";
} else {
echo "کوکی '" . $cookie_name . "' تنظیم شده است!<br>";
echo "مقدار آن: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
توجه: تابع setcookie()
باید قبل از تگ <html>
قرار گیرد.
توجه: مقدار کوکی به طور خودکار هنگام ارسال URLencode میشود و به طور خودکار هنگام دریافت Decoded میشود (برای جلوگیری از URLencoding، از setrawcookie()
استفاده کنید).
تغییر مقدار کوکی
برای تغییر مقدار یک کوکی، کافی است که کوکی را دوباره با استفاده از تابع setcookie()
تنظیم کنید:
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "کوکی با نام '" . $cookie_name . "' تنظیم نشده است!";
} else {
echo "کوکی '" . $cookie_name . "' تنظیم شده است!<br>";
echo "مقدار آن: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
حذف کوکی
برای حذف یک کوکی، از تابع setcookie()
با تاریخ انقضا در گذشته استفاده کنید:
بررسی اینکه آیا کوکیها فعال هستند یا خیر
مثال زیر یک اسکریپت کوچک ایجاد میکند که بررسی میکند آیا کوکیها فعال هستند یا خیر. ابتدا سعی میکنیم یک کوکی تست با استفاده از تابع setcookie()
ایجاد کنیم، سپس تعداد متغیر آرایه $_COOKIE
را شمارش میکنیم:
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام