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() با تاریخ انقضا در گذشته استفاده کنید:

<?php
// تاریخ انقضا را به یک ساعت پیش تنظیم کنید
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "کوکی 'user' حذف شد.";
?>
</body>
</html>

بررسی اینکه آیا کوکی‌ها فعال هستند یا خیر

مثال زیر یک اسکریپت کوچک ایجاد می‌کند که بررسی می‌کند آیا کوکی‌ها فعال هستند یا خیر. ابتدا سعی می‌کنیم یک کوکی تست با استفاده از تابع setcookie() ایجاد کنیم، سپس تعداد متغیر آرایه $_COOKIE را شمارش می‌کنیم:

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
  echo "کوکی‌ها فعال هستند.";
} else {
  echo "کوکی‌ها غیرفعال هستند.";
}
?>
</body>
</html>

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.