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 - آرایه‌ها (Arrays)

JavaScript – آرایه‌ها (Arrays)

آرایه در جاوااسکریپت متغیری خاص است که می‌تواند بیش از یک مقدار را ذخیره کند. const cars = ["Saab",...

بیشتر بخوانید
JavaScript - ویژگی‌های عدد (Number Properties)

JavaScript – ویژگی‌های عدد (Number Properties)

در جاوااسکریپت، شیء Number شامل ویژگی‌هایی از پیش تعریف‌شده است که برای کار با اعداد مفید هستند. این ویژگی‌ها...

بیشتر بخوانید
JavaScript - متدهای عدد (Number Methods)

JavaScript – متدهای عدد (Number Methods)

در جاوا اسکریپت، متدهایی برای کار با اعداد ارائه شده‌اند که می‌توانند روی تمامی اعداد استفاده شوند. متدهای مربوط...

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

نظرات

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

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