همه افرادی که با مرورگر کار می کنند، حتما و حداقل یکبار نام کوکی یا cookie را شنیده اند. در این مقاله قصد داریم به شما بگوییم که کوکی چیست و چگونه می توان از کوکی در Php استفاده کرد.

cookies یا کوکی چیست؟

کوکی ها یک متغیر می باشند که بوسیله ی سرور به مرورگر وب ارسال می شوند. Cookie معمولا یک فایل متنی کوچک است که سرور روی کامپیوتر کاربر می گنجاند. نام Cookie بصورت خودکار به یک متغیر با نام مشابه اختصاص داده می شود. برای مثال ، اگر یک Cookie با نام “user” ارسال گردد، بطور خودکار یک متغیر با نام user$ ایجاد می شود که شامل مقدار کوکی می باشد.

cookie ها برای احراز هویت یک کاربر استفاده می شوند. کوکی ها در واقع یک فایل کوچک هستند که سرور روی کامپیوتر کاربر ذخیره می نماید. هر زمانیکه کامپیوتر کاربر یک صفحه را از طریق یک مرورگر وب درخواست می نماید، در واقع کوکی متناظر آنرا نیز ارسال می نماید. با استفاده از زبان PHP شما قادر خواهید بود مقادیر Cookie را ایجاد و استخراج نمایید.

برای درک بهتر عملکرد Cookie

چرا ما از کوکی ها استفاده می کنیم ؟

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

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

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

  • سایت های آماری از کوکی ها برای پیگیری کاربران خود استفاده می کنند. با استفاده از کوکی یک کاربر بیش از یک بار در وبسایت مورد شمارش قرار نمی گیرد و آمار کاربران را به صورت منحصر به فرد می توان به دست آورد.

امنیت کوکی ها :

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

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

طریقه ی ایجاد یک کوکی در php:

تابع ()setcookie برای ایجاد یک Cookie بکار می رود به بیان بهتر تابع ()setcoomie یک HTTP Cookie را به یک کلاینت ارسال می نماید. Cookie بایستی قبل از ارسال هر خروجی به کلاینت اختصاص داده شود. این تابع ارزش True را در زمان موفقیت یا False را درهنگام شکست خواهد داشت.

نکته: تابع ()setcookie بایستی قبل از تگ  <html> ظاهر گردد.

نحوه ی استفاده از تابع ()setcookie:

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

name: نام Cookie می باشد. شما از این نام بعدا برای استخراج Cookie  استفاده خواهید نمود، پس آنرا فراموش نکنید.

Value: مقدار متناظر با Cookie می باشد که داخل آن ذخیره می گردد. مقادیر معمول Cookie شامل نام کاربری (از نوع داده ی رشته ای) و آخرین بازدید (از نوع داده ی تاریخ) می باشد.

Expire: بیانگر زمانی است که Cookie منقضی می گردد. ضمنا قرار دادن این پارامتر اختیاری می باشد و اگر مقداری برای آن قرار داده نشود یا مقدار آن برابر صفر انتخاب گردد، Cookie در پایان session (هنگامیکه مرورگر بسته می شود) منقضی میگردد.  این پارامتر بر حسب ثانیه می باشد،  بعنوان مثال time()+3600*24*30 کوکی را ۳۰ روز بعد از زمان فعلی منقضی می نماید.

Path: مشخص کننده ی مسیر سرور کوکی می باشد که پارامتری اختیاری است. اگر آنرا برابر با “/” قرار دهیم، کوکی در تمام دامنه در دسترس خواهد بود. اگر بعنوان مثال آنرا برابر با “/test/” قرار دهیم، Cookie تنها در دایرکتوری test و تمام زیر دامنه های test در دسترس خواهد بود. مقدار پیش فرض آن دایرکتوری فعلی است که Cookie در آن قرار داده می شود.

Domain: بیانگر نام دامنه ی Cookie می باشد که پارامتری اختیاری است. بعنوام مثال برای در دسترس بودن Cookie در تمام زیر دامنه های yourdomain.com بایستی مقدار این پارامتر برابر با “.yourdomain.com” قرار داده شود. با قرار دادن مقدار آن برابر با www.yourdomain.com در واقع Cookie تنها در زیر دامنه ی www در دسترس خواهد بود.

Secure: مشخص کننده ی این امر است که آیا Cookie بایستی از یک ارتباط HTTPS امن ارسال گردد یا خیر و این پارامتر نیز اختیاری می باشد. ارزش True برای این پارامتر نشاندهنده ی این است که Cookie تنها هنگامی قرار داده می شود که یک ارتباط امن وجود داشته باشد. ضمنا مقدار پیش فرض آن False می باشد.

نکته:

مقدار کوکی هنگام ارسال آن بصورت خودکار  URL رمز شده خواهد بود و هنگام دریافت مقدار مذکور بطور خودکار  رمزگشایی می گردد. پس برای جلوگیری از کد شدن URL به هنگام دریافت در پی‌اچ‌پی ۵ می توانید از تابع ()setrawcookie به جای تابع ()setcookie استفاده نمایید.

 

چگونگی پاک کردن کوکی :

برای پاک کردن یک کوکی تابع خاصی وجود ندارد . برای اینکار از تنظیم مجدد و معکوس زمان به صورت زیر استفاده می کنیم:

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

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

بدون دیدگاه

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

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