از تابع ( ) setcookie برای ایجاد و ذخیره یک کوکی در زبان PHP استفاده می شود . برای ایجاد یک کوکی تعیین چند چیز مهم است :

نام
مقدار
مدت زمان اعتبار *

* نکته : توجه داشته باشید که کوکی ها پس از یک مدت زمان تعیین شده ، اعتبار خود را از دست می دهند و باید دوباره فراخوانی شوند . در این حالت می گوییم ، کوکی expire شده است .
برای مثال فرض کنید در یک سایت login کرده اید . سپس کامپیوتر و مرورگر خود را برای مدتی رها می کنید ( مرورگر و صفحه جاری را نمی بندید ) . پس از مراجعه دوباره متوجه می شوید ، که مرورگر شما را logout کرده است و دوباره باید وارد شوید . دلیل این مسئله پایان یافتن مدت زمان اعتبار یک کوکی است .

شکل کلی تعریف و ایجاد یک کوکی به وسیله تابع ( ) setcookie در PHP به صورت زیر است :

 < ? php
setcookie ( name , value , expire , path , domain ) ;
? >

توضیح پارامترها
پارامتر name تعیین کننده نام کوکی است . از این نام برای بازیابی و فراخوانی کوکی در سطح برنامه استفاده می شود .
پارامتر value مقدار کوکی را تعیین می کند .این مقدار بر روی کامپیوتر ذخیره می شود .
پارامتر expire تعیین کننده مدت زمان اعتبار کوکی ، بر حسب ثانیه است . پس از اتمام این مدت زمان ، کوکی از بین خواهد رفت .
برای تعیین مدت زمان اعتبار کوکی ، معمولا از تابع ( ) time استفاده می شود .
پارامتر  path  تعیین کننده مسیری بر روی سرور سایت است که کوکی در آن ، قابل دریافت و ذخیره است .
برای مثال اگر مقدار آن برابر با ‘/’ تعیین شود ، در تمام سایت قابل دسترسی است . اما اگر روی مقدار /en/’ تنظیم شود ، فقط در دایرکتوری en در سایت قابل دسترسی است .
تعیین این پارامتر اختیاری است .
پارامتر domain ، دامنه ای که کوکی بر روی آن قابل دسترس است را تعیین می کند .
برای مثال اگر مقدار آن www.regiran.com تنظیم شود ، فقط در این دامنه قابل دسترسی است .
تعیین این پارامتر اختیاری است .

مثال های عملی :

در مثال های زیر نحوه ایجاد چند کوکی را با پارامترهای مختلف به شما نمایش داده ایم :

مثال ۱ :در مثال زیر یک کوکی به نام info با مقدار Mehrdad را ایجاد کرده ایم ، که برای مدت یک ساعت ( ۳۶۰۰ ثانیه ) اعتبار دارد . به کد مثال دقت نمایید :

 < ? php
setcookie ( ” info “, ” Mehrdad “, time( )+3600 ) ;
? >

 

مثال ۲ : در مثال دوم یک کوکی دیگر ایجاد کرده ایم ، که برای مدت یک سال اعتبار داشته ، ولی فقط در دامنه www.regiran.com اعتبار دارد :

 < ? php
$ expire = time( ) + 60 * 60 * 24 * 30 ;
setcookie ( ” info2 “, ” Developer “, $expire , ‘www.developerstudio.ir’ ) ;
? >