کوکی ها (cookie) در php

ناصر نادری | 1394/02/17


بنام خدا .

در این جلسه از سری آموزشهای php موضوع کوکی هارو اینبار در برنامه نویسی سمت سرور خدمت دوستان  ارائه خواهیم داد . قبلا در مورد کوکی ها در برنامه نویسی جاوا اسکریپت  مطالبی رو خدمتون ارائه دادیم . 

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

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

 برای دسترسی به کوکی ها در زبان php از آرایه ای با نام  HTTP_COOKIE_VARS یا بصورت خلاصه  $_COOKIE استفاده میکنیم . 

روال کار با کوکی در برنامه نویسی سمت سرور به این شکل هست :

- سرور مجموع کوکی هایی رو که ایجاد کرده به مرورگر ارسال میکنه .

- مرورگر این کوکی هارو ذخیره میکنه .

- وقتی در مراجعات بعدی وارد صفحه مورد نظر میشید  این کوکی ها از مرورگر دریافت میشه و به سرور جهت  شناسایی و پردازشهای دیگه ارسال میشه .

توی php  به شکل  زیر کوکی  رو تعریف میکنیم :

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

name : نام کوکی , value : مقدار کوکی , expire : تاریخ انقضا , path : مسیری که کوکی بهش تعلق داره , domain : حوزه یا دامنه اعتبار کوکی و security : اگه 0 باشه از طریق http و اگر 1 با شه از طریق https یا همون http امن منتقل میشه .

 <?php
//تنظیم کوکی با تاریخ انقضای یک ساعت متعلق به دامنه پوشه ای که صفحه اونجا ذخیره  میشه
setcookie("name", "naser", time()+3600, "/","", 0);
?>

برای بدست آوردن مقدار کوکی به شکل زیر استفاده میکنیم :

 <?php

echo $_COOKIE["name"]. "<br />";
/* یا میتونید از روش زیر استفاده کنید */
echo $HTTP_COOKIE_VARS["name"]. "<br />";

?> 

با تابع پرکاربرد isset میتونید بررسی کنید که یک متغییر از هرنوعی تعریف و مقدار دهی شده یا نه . میتونیم از این تابع برای بررسی اینکه کوکی مورد نظر ایجاد شده یا نه استفاده کنیم .

 <?php
//بررسی اینکه کوکی ست شده یا نه
if( isset($_COOKIE["name"]))
    echo "خوش آمدید " . $_COOKIE["name"] . "<br />";
else
    echo "شما برای سیستم شناخته شده نیستید " . "<br />";
?> 

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

 <?php
//تاریخ انقضا کوکی رو به 60 ثانیه قبل برمیگردونه
setcookie( "name", "", time()- 60, "/","", 0);

?> 

تا جلسه بعد در پناه حق .


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید