وباکا

آموزش تخصصی برنامه نویسی وب

کوکی اغلب برای شناسایی کاربر استفاده می شود.

کوکی چیست؟

کوکی اغلب برای شناسایی کاربر استفاده می شود. کوکی یک فایل کوچک است که سرور بر روی رایانه کاربر جاسازی می کند. هربار که یک کامپیوتر یک صفحه را با یک مرورگر درخواست می کند، کوکی را نیز ارسال می کند. با پی اچ پی، می توانید مقدار کوکی را ایجاد و بازیابی کنید.

ایجاد کوکی ها با پی اچ پی

کوکی با  تابع setcookie به شکل کلی زیر ایجاد می شود که فقط پارامتر نام مورد نیاز است تمام پارامترهای دیگر اختیاری هستند.

setcookie(name, value, expire, path, domain, secure, httponly);

 

ایجاد / بازیابی یک کوکی در پی اچ پی

مثال زیر یک کوکی به نام “user” با مقدار “mohammad” ایجاد می کند. کوکی بعد از 30 روز منقضی می شود (30،000 * 86400). “/” به این معنی است که کوکی در کل وب سایت در دسترس است (در غیر اینصورت، دایرکتوری را که ترجیح می دهید را انتخاب کنید).

در ادامه، مقدار کوکی “user” را (با استفاده از متغیر سراسری $ _COOKIE)  بازیابی می کنیم.  همچنین از تابع isset برای چک کردن اینکه آیا کوکی تنظیم شده است یا خیر، استفاده می کنیم:

<?php
$cookie_name = "user";
$cookie_value = "mohammad";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>

توجه: تابع setcookieقبل از تگ <html> باید قرار داده شود.

توجه: مقدار کوکی به طور خودکار هنگام ارسال کوکی URLencoded می شود و به صورت خودکار رمزگشایی می شود (برای جلوگیری از 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 named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>

کوکی را حذف کنید

برای حذف کوکی، از تابع setcookie  با تاریخ انقضا در گذشته استفاده کنید:

<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>

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

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

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
?>
</body>
</html>

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب