کوکیها در PHP
کوکیها cookies یکی از روشهای محبوب برای ذخیره اطلاعات کاربر در مرورگر او هستند. این روش به شما امکان میدهد که دادهها را بین جلسات کاربری حفظ کنید و به اطلاعاتی مانند ورود کاربران، تنظیمات شخصی، و موارد دیگر دسترسی داشته باشید. در این مقاله، با کوکیها در PHP و نحوه استفاده از آنها آشنا خواهید شد.
فهرست مطالب
- مقدمهای بر کوکیها
- ایجاد کوکی در PHP
- دسترسی به کوکیها
- حذف کوکیها
- مدیریت زمان انقضای کوکیها
- نکات امنیتی در مورد کوکیها
- جمعبندی
- لینکهای پیشنهادی
کوکی cookies چیست ؟
1. مقدمهای بر کوکیها
کوکیها قطعههای کوچکی از داده هستند که در مرورگر کاربر ذخیره میشوند و معمولاً برای ذخیرهسازی اطلاعاتی مانند اطلاعات ورود، تنظیمات کاربری، و پیگیری سبد خرید استفاده میشوند. این دادهها به سرور وب ارسال میشوند تا اطلاعات ذخیره شده در هر بار بارگذاری صفحه مجدداً مورد استفاده قرار گیرند.
2. ایجاد کوکی در PHP
برای ایجاد یک کوکی در PHP از تابع setcookie()
استفاده میشود. این تابع حداقل به دو پارامتر اصلی نیاز دارد: نام کوکی و مقدار آن. یک نمونه ساده برای ایجاد کوکی در زیر آورده شده است:
مثال ایجاد کوکی:
<?php
// ایجاد یک کوکی به نام "user" با مقدار "John Doe"
setcookie("user", "mahya", time() + (86400 * 30), "/"); // کوکی برای 30 روز معتبر است
?>
در این مثال:
"user"
: نام کوکی است."mahya"
: مقدار کوکی است.time() + (86400 * 30)
: زمان انقضا به صورت 30 روز (هر روز 86400 ثانیه است)."/"
: مسیر کوکی که در اینجا برای تمام مسیرهای دامنه تنظیم شده است.
3. دسترسی به کوکیها
برای دسترسی به مقادیر ذخیره شده در کوکیها، از متغیر سراسری $_COOKIE
در PHP استفاده میشود. این متغیر مانند یک آرایه عمل میکند که هر کوکی ذخیره شده را با نام آن قابل دسترسی میسازد.
مثال دسترسی به کوکی:
<?php
if(isset($_COOKIE["user"])) {
echo "کاربر: " . $_COOKIE["user"];
} else {
echo "کوکی تنظیم نشده است.";
}
?>
در این مثال، اگر کوکی با نام "user"
تنظیم شده باشد، مقدار آن نمایش داده میشود؛ در غیر این صورت پیامی مبنی بر عدم تنظیم کوکی نشان داده میشود.
4. حذف کوکیها
برای حذف یک کوکی، باید زمان انقضای آن را به یک تاریخ گذشته تنظیم کنید. به این صورت مرورگر کوکی را حذف میکند.
مثال حذف کوکی:
<?php
// حذف کوکی با نام "user"
setcookie("user", "", time() - 3600, "/"); // زمان انقضا به یک ساعت قبل تنظیم شده است
?>
در این مثال، کوکی "user"
با مقدار خالی و زمان انقضا به گذشته (یک ساعت قبل) تنظیم شده است که منجر به حذف آن میشود.
5. مدیریت زمان انقضای کوکیها
یکی از قابلیتهای کوکیها، تنظیم زمان انقضای آنها است. با استفاده از پارامتر سوم در تابع setcookie()
، میتوانید مدت زمان معتبربودن کوکی را تنظیم کنید.
- کوکی موقت (Session Cookie): اگر زمان انقضا را تنظیم نکنید، کوکی تا زمان بسته شدن مرورگر معتبر خواهد بود.
- کوکی دائمی: برای ایجاد کوکیای که پس از بسته شدن مرورگر هم معتبر باشد، باید زمان انقضای مشخصی تنظیم کنید.
مثال تنظیم زمان انقضا:
<?php
// کوکیای که برای 7 روز معتبر است
setcookie("long_term_cookie", "some value", time() + (86400 * 7), "/");
?>
6. نکات امنیتی در مورد کوکیها
استفاده از کوکیها به دلایل امنیتی نیازمند توجه ویژه است. برخی از نکات امنیتی برای مدیریت امن کوکیها عبارتند از:
HttpOnly
: از این ویژگی استفاده کنید تا کوکیها فقط از طریق HTTP/HTTPS در دسترس باشند و از دسترسی JavaScript جلوگیری شود. مثال استفاده ازHttpOnly
:
setcookie("secure_cookie", "secure_value", time() + 3600, "/", "", true, true);
در این مثال، پارامتر هفتم (true
) تعیین میکند که کوکی فقط از طریق HTTPS ارسال شود و پارامتر هشتم نیز استفاده از HttpOnly
را فعال میکند.
Secure
: برای کوکیهای حساس از ویژگیSecure
استفاده کنید تا اطمینان حاصل شود که کوکیها فقط از طریق ارتباطات امن (HTTPS) ارسال میشوند.- اجتناب از ذخیره دادههای حساس: هرگز اطلاعات حساس مانند رمز عبور یا دادههای شخصی کاربر را در کوکی ذخیره نکنید.
- کدگذاری مقادیر کوکی: برای امنیت بیشتر، از توابع کدگذاری مانند
base64_encode()
یا رمزنگاری دادهها پیش از ذخیرهسازی در کوکی استفاده کنید.
7. جمعبندی
کوکیها یکی از ابزارهای مهم برای مدیریت دادهها و حفظ وضعیت کاربر در برنامههای وب هستند. استفاده صحیح و امن از کوکیها به شما امکان میدهد تا تجربه کاربری بهتری را برای کاربران فراهم کنید. به یاد داشته باشید که همیشه دادههای ذخیره شده در کوکیها را معتبرسازی و تغییر دهید و از نکات امنیتی برای جلوگیری از حملات و نقض امنیت استفاده کنید.