کوکی ها در PHP

آموزش کامل کوکی ها در PHP

آموزش کامل کوکی ها در PHP

کوکی ها در PHP یک قطعه اطلاعات (یک فایل متنی) است که سرور بر روی کامپیوتر کاربر ذخیره کرده و در مراجعات کاربر به همان سایت ، از آن اطلاعات برای شناسایی وی استفاده می کند.

این فایل متنی شامل داده هایی مانند رمز عبور ، نام کاربری ، ایمیل و اطلاعاتی است که در سایت مقصد وارد کرده باشید است.شما زمانی که به همان سایت وارد می شوید اطلاعاتی که در کوکی ذخیره شده اند، به سرور ارسال شده و سایت باتوجه به اطلاعات فرستاده شده بالا می آید.

برای مثال فرض کنید که در یک سایت فروم عضو شده و یک رمز عبور و شناسه کاربری را برای خود تعیین کرده اید . هنگامی که برای اولین بار اطلاعات کاربری خود را در مرورگر وارد می کنید، این اطلاعات در یک کوکی بر روی مرورگر کامپیوتر شما ذخیره می شود.

هنگامی که در مراجعه بعدی به همان سایت می روید ، متوجه می شوید که مرورگر اطلاعات کاربری شما را وارد نموده و شما log in شده اید ، بدون اینکه خودتان کاری انجام داده باشید .اینکه کوکی ها در کجا ذخیره می شوند، بسته به تنظیمات مرورگرهای مختلف، متفاوت است.

کوکی ها در PHP

یک مفهوم دیگری به نام session وجود دارد که تفاوتش با cookie در این است که کوکی ها در کامپیوتر کاربر ذخیره می شود اما session در سرور ذخیره می شود. کوکی ها را می توان به صورت دستی حذف کرد که ولی نسبت به session کاربر دسترسی ندارد.

سیستم های بانکی و سایت هایی که نیاز به ذخیره اطلاعات و داده های ورودی بر روی سرور است از session استفاده میکنند.

ایجاد کوکی ها در PHP

در php برای ایجاد کوکی از setcookie() وجود دارد که برای set و unset کردن کوکی استفاده می شود. نحوه استفاده از این تابع به صورت زیر است :

setcookie("name", "value", expire, "path", "domain");

Name: نام کوکی شما

Value: نام کاربری و… , مقدار یا ارزشی که در کوکی ذخیره می شود مانند: کلمه عبور

Expire: زمان انقضای کوکی.

Path: مسیر وبسایت که کوکی برای آن معتبر است.

Domain: وبسایتی که کوکی برای آن معتبر است.

برای مثال به قطعه کد زیر دقت فرمایید:

setcookie("username", "navid", time()+3600);

در قطعه کد بالا برای پارامتر name،username و برای مقدار و ارزش آن navid در نظر گرفته شده است . دقت کنید اگر path,domain را خالی بگذارید سایت فعلی با دامنه ی اصلی خودتان در نظر گرفته میشود.

اما درباره ی زمان انقضا باید بگوییم که منظور از زمان انقضا مدت زمانی است که کوکی ها در PHP معتبر میباشد و بعد از این زمان دیگر اعتبار نداشته و به سرور فرستاده نمیشود.این عمل ضریب امنیت کوکی را بالا میبرد.

کوکی ها در PHP

در مثال بالا مقدار expire را برابر time()+3600 قرار دادیم که معنی آن این است که زمان انقضا برابر است با زمان فعلی بعلاوه ی 3600 ثانیه بعد. یعنی از زمانی که کوکی بوجود می آید تا یک ساعت بعد.(دقت شود مقدار expire باید برحسب ثانیه تعیین گردد.)

چگونگی خواندن (بازیابی) از کوکی ها در PHP

تابعی که در بالا استفاده شد فقط کوکی ها در PHP را ایجاد میکند ولی کوکی را نمیخواند.برای این که فایل متنی ایجاد شده(کوکی) توسط سایت بازیابی و خوانده شود php از cookie_$استفاده میکند.

برای مثال به قطعه کد زیر توجه فرمایید:

// Print a cookie
echo $_COOKIE["username"];
print_r($_COOKIE);
if (isset($_COOKIE["username"])) {
echo "Welcome " . $_COOKIE["username"] . "!" ;
}else{
echo "Welcome guest!";
}

کد بالا بررسی می کند که کوکی با نام مورد نظر تنظیم شده است یا خیر اگر تنظیم شده باشد پیغام Welcome navid و در غیر اینصورت پیغام false را نمایش می دهد.

پاک کردن کوکی

کوکی ها در PHP – برای پاک کردن کوکی تابع خاصی نداریم ولی میتوانیم با ترفندی کوکی را پاک کنیم به مثال زیر توجه کنید:

setcookie("username", "", time()-3600);

این قطعه کد بیان گر این است که مقدار ارزشی کوکی پوچ و زمان انقضا یک ساعت زودتر از ساخت آن است که عملا کوکی حذف خواهد شد.

در نظر داشته باشید که در پروژه هایی که لازم است کاربر با نام کاربری و کلمه عبور وارد سایت یا پنل کاربری خود شود حتما برای کوکی که تعریف مینمایید تاریخ انقضا قرار دهید و نکات ایمنی و امنیتی سایت پروژه تان را رعایت بفرمایید.

که مقدار ارزشی ایمیلی است که کاربر برای ثبت نام و لاگین در سایت وارد میکند.

سپس تا 30 روز میتواند با مقداری که به عنوان کوکی ها در PHP در رایانه شخصی ذخیره شده است بدون وارد کردن ایمیلی مجدد لاگین نماید.

موفق باشید


نوید سیفی
نوید سیفی
من حدود 8 سال است که در حوزه طراحی و برنامه نویسی وب فعالیت دارم و در این وبسایت میخواهم تمامی دانش خود را با شما درمیان بگذارم!

پست های مشابه

دیدگاه و پرسش

هنوز دیدگاهی ثبت‌نشده
کدیاتو • کدنویسی رو قورت بده...
ما هر روز کلی مطالب آموزشی جالب در اینستاگراممون منتشر می‌کنیم! مشاهده پست های اینستاگرام