در حال بارگذاری...

کوکی‌ها در PHP

کوکی‌ها در PHP فایل‌های کوچک متنی هستند که توسط سرور در مرورگر کاربر ذخیره می‌شوند و به سرور اجازه می‌دهند اطلاعاتی درباره کاربران بین درخواست‌ها حفظ شود. این ویژگی به دلیل طبیعت بدون حالت HTTP بسیار مهم است، زیرا امکان پیگیری جلسات، شخصی‌سازی تجربه کاربری و مدیریت تنظیمات کاربر را فراهم می‌کند.
در توسعه PHP، کوکی‌ها معمولاً برای ذخیره نام کاربر، تنظیمات تم، ترجیحات زبان و اطلاعات سبد خرید استفاده می‌شوند. آن‌ها از طریق تابع setcookie() ایجاد شده و با استفاده از آرایه فوق‌جهانی $_COOKIE خوانده می‌شوند. توسعه‌دهندگان پیشرفته PHP باید با سینتکس، ساختارهای داده‌ای مانند آرایه‌های انجمنی، الگوریتم‌های مدیریت داده و اصول شیءگرایی (OOP) آشنا باشند تا کوکی‌ها را به صورت بهینه و امن مدیریت کنند.
در این آموزش، کاربران یاد خواهند گرفت چگونه کوکی‌ها را ایجاد، خوانده، به‌روزرسانی و حذف کنند. علاوه بر این، نکات امنیتی مانند استفاده از فلگ‌های HttpOnly و Secure، رمزگذاری داده‌های حساس و تنظیم زمان انقضا آموزش داده خواهد شد. این دانش برای طراحی معماری سیستم‌های PHP و ایجاد برنامه‌های وب حرفه‌ای و ایمن ضروری است.

مثال پایه

php
PHP Code
<?php
$cookie_name = "user";
$cookie_value = "AliReza";

// کوکی را برای 7 روز ایجاد کنید
setcookie($cookie_name, $cookie_value, time() + (7 * 24 * 60 * 60), "/");

// بررسی وجود کوکی
if(isset($_COOKIE[$cookie_name])) {
echo "خوش آمدید " . $_COOKIE[$cookie_name] . "! شما توسط کوکی شناسایی شده‌اید.";
} else {
echo "کوکی یافت نشد. در حال ایجاد یک کوکی جدید.";
}
?>

در این مثال، ابتدا نام و مقدار کوکی تعیین می‌شود. تابع setcookie() کوکی را با نام، مقدار، زمان انقضا و مسیر ایجاد می‌کند. time() + (7 * 24 * 60 * 60) زمان انقضای 7 روزه را مشخص می‌کند. با استفاده از isset() بررسی می‌کنیم آیا کوکی در آرایه $_COOKIE موجود است یا خیر. این روش تضمین می‌کند که فقط وقتی کوکی موجود است، داده‌ها خوانده شوند. این مثال پایه‌ای از مدیریت کوکی‌ها در PHP ارائه می‌دهد و نشان می‌دهد چگونه می‌توان برای پیگیری کاربر و مدیریت جلسه از آن‌ها استفاده کرد.

مثال کاربردی

php
PHP Code
<?php
class UserCookie {
private string $cookieName = "user";
private int $expiry = 604800; // 7 روز

public function __construct(private string $username) {}

public function create(): void {
if(!isset($_COOKIE[$this->cookieName])) {
setcookie($this->cookieName, $this->username, time() + $this->expiry, "/");
}
}

public function read(): ?string {
return $_COOKIE[$this->cookieName] ?? null;
}

public function delete(): void {
setcookie($this->cookieName, "", time() - 3600, "/");
unset($_COOKIE[$this->cookieName]);
}

public function greet(): void {
$user = $this->read();
if($user) {
echo "خوش آمدید $user! شما توسط کوکی شناسایی شده‌اید.";
} else {
echo "کوکی یافت نشد.";
}
}
}

$session = new UserCookie("AliReza");
$session->create();
$session->greet();
?>

این مثال پیشرفته از اصول شیءگرایی استفاده می‌کند. کلاس UserCookie شامل نام کوکی، مدت زمان اعتبار و نام کاربر است. متدهای create(), read(), delete() و greet() وظیفه ایجاد، خواندن، حذف و نمایش پیام خوش‌آمدگویی را دارند. استفاده از OOP موجب سازماندهی بهتر، امکان بازاستفاده و افزایش امنیت کد می‌شود. عملگر Null Coalescing (??) در متد read() اطمینان می‌دهد که اگر کوکی موجود نباشد، کد خطا ندهد. این الگو در پروژه‌های واقعی برای مدیریت کوکی‌ها و شخصی‌سازی تجربه کاربر بسیار کاربردی است.

بهترین شیوه‌های PHP برای کوکی‌ها شامل نامگذاری واضح، تنظیم زمان انقضا و دسترسی تنها وقتی که کوکی موجود است، می‌شود. داده‌های حساس نباید به صورت مستقیم در کوکی ذخیره شوند و استفاده از فلگ‌های Secure و HttpOnly ضروری است. خطاهای رایج شامل دسترسی به کوکی‌های تعریف‌نشده، نشت حافظه و الگوریتم‌های ناکارآمد برای مدیریت داده‌های بزرگ هستند. برای دیباگ، استفاده از print_r($_COOKIE) و ثبت لاگ‌ها توصیه می‌شود. برای بهینه‌سازی عملکرد، اندازه کوکی‌ها باید کوچک باشد و تنها داده‌های ضروری ذخیره شوند. ترکیب مدیریت جلسه با کوکی‌ها امنیت و کارایی را افزایش می‌دهد.

📊 جدول مرجع

پی‌اچ‌پی Element/Concept Description Usage Example
setcookie() ایجاد کوکی و ارسال به مرورگر setcookie("user", "AliReza", time() + 3600, "/");
$_COOKIE تمام کوکی‌های ارسال شده توسط کلاینت echo $_COOKIE["user"];
unset() حذف کوکی از $_COOKIE unset($_COOKIE["user"]);
Cookie Expiry تعیین مدت زمان اعتبار کوکی time() + (7*24*60*60)
OOP Class کپسوله کردن منطق کوکی در کلاس‌ها $session = new UserCookie("AliReza"); $session->create();

یادگیری کوکی‌ها در PHP به مدیریت داده‌های کاربر، شخصی‌سازی و پیگیری جلسات کمک می‌کند. ترکیب رویکردهای OOP و procedural امکان ایجاد برنامه‌های امن و سازمان‌یافته را فراهم می‌کند. برای ادامه، مطالعه سشن‌ها، ذخیره امن داده‌ها و استفاده از کوکی‌ها در احراز هویت و مجوزها توصیه می‌شود. نکات عملی شامل استفاده از کلاس UserCookie در پروژه‌های واقعی، تنظیم فلگ‌های امنیتی و ثبت فعالیت کوکی‌ها است. منابع بیشتر شامل مستندات رسمی PHP و آموزش‌های پیشرفته امنیتی هستند.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

4
سوالات
🎯
70%
برای قبولی
♾️
زمان
🔄
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود