كوكي(Cookie) اغلب براي شناسایی كاربر استفاده مي شود. يك كوكي فايل كوچكي است كه سرور آنرا بر روي كامپيوتر كاربر قرار مي دهد. هر وقت همان كامپيوتر از طريق مرورگر درخواستي را به سرور فرستاد، كوكي را نيز همراه آن خواهد فرستاد. در این بخش با روش کار cookie ها در پی اچ پی آشنا می شوید.
يك كوكي (cookie) فايل كوچكي است كه سرور آنرا بر روي كامپيوتر كاربر قرار مي دهد. هر وقت همان كامپيوتر از طريق مرورگر درخواستي را به سرور فرستاد، كوكي را نيز همراه آن خواهد فرستاد. برای استفاده از کوکی ها در هر دوی زبان های برنامه نویسی سمت سرویس گیرنده و سمت سرویس دهنده، امکاناتی وجود دارد. با کمک دستوراتPHPمی توانیم مقادير كوكي ها را ذخيره و يا بازيابي كنيم.
1- ایجاد کوکی
تابع setcookie() براي تنظيم يك كوكي استفاده مي شود.و این تابع بايد هميشه قبل از تگ <html> قرار داشته باشد.
گرامر
مثال1
<?php
setcookie("user", "Ai", time()+3600);
?>
<html>
.....
در مثال زير، مي خواهيم يك كوكي با نام “user”ايجاد كنيم و مقدار “Ali”را به آن نسبت دهيم. ما همچنين مشخص كرده ايم كه كوكي پس از گذشت يك ساعت از بين برود. تابع time() زمان جاری را بر حسب ثانیه برمی گرداند و با اضافه کردن 3600 ثانیه به آن ، زمان انقضای کوکی را به یک ساعت بعد تنظیم کرده ایم.
توجه: مقدار كوكي هنگام ارسال آن بصورت خودكار كدگذاري شده (URLencoded)، و هنگام دريافت بصورت خودكار كدگشايي مي گردد.
مثال 2
همچنين مي توانيم يك زمان انقضاي كوكي را به صورت ديگري محاسبه كرده و برحسب ثانيه بدهيد.
<?php
$expire=time()+60*60*24*30;
setcookie("user", "Ali", $expire);
?>
<html>
//.....
در مثال فوق زمان انقضاي كوكي به يك ماه تنظيم شده است (يك ماه مساوي است با 60*60*24*30 ثانيه)
2- بازیابی کوکی ها
در PHP از متغیر COOKIE_$ برای بازیابی مقدار یک کوکی استفاده می شود. در مثال زیر، یک مقدار از کوکی به نام “user” را بازیابی کرده و آنرا در یک صفحه نمایش می دهد.
<?php
// Print a cookie
echo $_COOKIE["user"];
// برای نمایش همه کوکی ها
print_r($_COOKIE);
?>
در مثال زیر از تابع isset() برای تشخیص اینکه یک کوکی تنظیم شده یا خیر استفاده کرده ایم.
<html>
<body><?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOHIE["user"] . "!<br />";
else
echo "Welcome guest!<br />";
?></body>
</html>
3- حذف کوکی
برای حذف یک کوکی، باید تاریخ انقضای آنرا به گذشته تغییر دهید.
<?php
// تنظیم زمان کوکی به گذشته
setcookie("user", "", time()-3600);
?>
4- پشتیبانی مرورگرها از کوکی
اغلب مرورگرها، کوکی را پشتیانی می کنند ، از طرفی سیستم عامل ها امکاناتی برای تنظیمات حریم خصوصی (Privacy) که می توان به کوکی ها اجازه ذخیره شدن روی سیستم را داد و یا از ذخیره شدن بعضی از آنها جلوگیری کرد، و یا می توان کوکی های روی یک سیستم را حذف کرد. در سیستم عامل ویندوز می توان این تنظیمات را در برنامه Internet Options از Control Panel انجام داد.
بنابرین در مورد استفاده از کوکی های نکات زیر را درنظر بگیرید:
هیچ کدام زبان برنامه نویسی تحت وب ، چه سمت سرور و چه سمت مشتری، امکان دسترسی به فایلهای روی سیستم مشتری را ندارند پس تنها روش ذخیره سازی اطلاعات دائمی روی سیستم مشتری استفاده از کوکی است.
از کوکی ها نمی توان برای نگهداری اطلاعات امنیتی مثل رمز عبور، شماره حساب بانکی و … استفاده کرد ، چون اولاً روی سیستم مشتری ذخیره شده ، و از طرفی هر کاربری که با آن سیستم کار کند و به سایت ایجاد کننده کوکی متصل شود، کوکی ها برای او هم به سرور ارسال می شود و افرادی ممکن است ازآنها سوء استفاده کنند.
عملکرد یک برنامه کاربردی مبتنی بر وب نمی تواند متکی به کوکی ها باشد، چون با پشتیبانی نکردن مرورگر از کوکی یا مسدود کردن کوکی توسط کاربر، عملکرد سایت دچار اشکال خواهد شد.