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

ایجاد کوکی

ایجاد کوکی ها بوسیله یک تابع به نام setcookie() انجام می پذیرد که چندین پارامتر دارد. این تابع نیز مانند تابع session_start() در بخش جلسه ها باید قبل از کدهای html قرار بگیرد. شکل کلی استفاده از آن به شکل زیر است:

setcookie(name, value, expire);

هرکوکی دارای یک نام است که توسط پارامتر name مشخص می شود. پارامتر value مقدار کوکی را و پارامتر expire زمان نابود شدن این کوکی را مشخص می کند. زمانی که تاریخ یا زمان کوکی که توسط پارامتر expire تنظیم می شود به پایان برسد دیگر این کوکی توسط برنامه شناسایی نمی شود زیرا کوکی به طور کامل حذف شده و قابل استفاده نیست. این پارامتر برحسب ثانبه مقادیری را دریافت می کند.

مثال:

 

این کد یک کوکی با نام username و مقدار exampleName را به شکلی ذخیره می کند که پس از یک دقیقه این کوکی از بین می رود. دقت کنید که برای مشخص کردن پارامتر expire از تابع time() استفاده کردیم. این تابع زمان فعلی را برمی گرداند که هرمقدار که مورد نیاز است به این تابع افزوده می شود. مقداری که به این تابع افزوده می شود باید برحسب ثانیه باشد. مثلا اگر می خواهیم کوکی ما برای یک ماه پایدار باشد باید مقدار time() + 60 * 60 * 24 * 30 را وارد کنیم.

واکشی مقادیر کوکی ها

برای واکشی مقادیر کوکی های ثبت شده از متغیر $_COOKIE[] به صورت زیر استفاده می شود:

$_COOKIE[cookie_name];

که به جای cookie_name نام کوکی ثبت شده قرار می گیرد و مقدار آن کوکی برگردانده می شود.

مثال:

مقدار کوکی که در مثال پیش ایجاد شد را به شکل زیر واکشی می کنیم:

 

خروجی:

مثالی از استفاده کوکی ها در php

خروجی

اما اگر این کوکی از بین برود (در این مثال پس از 1 دقیقه) ممکن است خطایی به شکل زیر به نمایش درآید:

خطا در اجرای کوکی ها

خروجی

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

یعنی می توان مثال پیش را به صورت زیر گسترش داد:

 

همانطور که مشاهده می کنید وجود کوکی مورد نظر را با استفاده از تابع isset() بررسی کردیم. خروجی این کد در صورت وجود کوکی به شکل زیر:

مثالی از استفاده از کوکی ها در PHP

خروجی

و در صورت عدم وجود به صورت زیر خواهد بود:

مثالی از نبود کوکی ها در PHP

خروجی

از بین بردن کوکی

برای  از بین بردن کوکی دو راه وجود دارد. راه اول استفاده از تابع unset() می باشد که در قسمت های قبل بررسی شد.

اما راه دیگر و بهتر این است که پارامتر expire را به زمانی پیش از بین نسبت دهیم و به جای این که با تابع time() جمع شود عددی را از این تابع کم کنیم.

به مثال زیر توجه کنید. در این مثال از روش اول استفاده شده است:

 

کد زیر نیز از روش دوم استفاده کرده است:

 

خروجی هر دو کد به شکل زیر می باشد:

مثالی از نبود کوکی ها در PHP