کوکی چیست ؟
کوکی یک قطعه اطلاعات است که سرور بر روی کامپیوتر کاربر ذخیره کرده و در مراجعات کاربر به همان سایت ، از آن اطلاعات برای شناسایی وی استفاده می کند . این اطلاعات معمولا راجع به شناسه کاربری ، رمز عبور ، تنظیمات یک کاربر بر روی سایت و ... می باشد .
زمانی که کاربر به وسیله کامپیوتر خود همان سایت را باز می کند ، مرورگر اطلاعات کوکی ها را به سرور ارسال می کند . از کوکی برای بازیابی اطلاعات کاربری و یا سایر تنظیماتی که کاربر در یک سایت ایجاد کرده است ، در مراجعات بعدی به همان سایت استفاده می شود .
برای مثال فرض کنید که در یک سایت فروم عضو شده و یک رمز عبور و شناسه کاربری را برای خود تعیین کرده اید . هنگامی که برای اولین بار اطلاعات کاربری خود را در مرورگر وارد می کنید ، این اطلاعات در یک کوکی بر روی مرورگر کامپیوتر شما ذخیره می شود . هنگامی که در مراجعه بعدی به همان سایت می روید ، متوجه می شوید که مرورگر اطلاعات کاربری شما را وارد نموده و شما log in شده اید ، بدون اینکه خودتان کاری انجام داده باشید . در واقع مرورگر از کوکی برای ایجاد ، ذخیره و ارسال مجدد این اطلاعات به سرور استفاده کرده است .
مرورگر ها معمولا برای ایجاد و دخیره کوکی ها از کاربر سوال کرده و یا گزینه ای را جهت ایجاد آن قرار می دهند . پس از تایید کاربر اقدام به ایجاد و ذخیره کوکی ها می نمایند .
توسط زبان PHP شما به راحتی می توانید کوکی های خود را ایجاد کرده و مجددا آنها را دریافت و ارسال نمایید . در این بخش قصد داریم تا شما را با نحوه ایجاد و خواندن کوکی ها در زیان PHP آشنا نماییم .
ایجاد کوکی ( cookie ) در PHP :
از تابع ( ) setcookie برای ایجاد و ذخیره یک کوکی در زبان PHP استفاده می شود . برای ایجاد یک کوکی تعیین چند چیز مهم است :
- نام
- مقدار
- مدت زمان اعتبار *
* نکته : توجه داشته باشید که کوکی ها پس از یک مدت زمان تعیین شده ، اعتبار خود را از دست می دهند و باید دوباره فراخوانی شوند . در این حالت می گوییم ، کوکی expire شده است .
برای مثال فرض کنید در یک سایت login کرده اید . سپس کامپیوتر و مرورگر خود را برای مدتی رها می کنید ( مرورگر و صفحه جاری را نمی بندید ) . پس از مراجعه دوباره متوجه می شوید ، که مرورگر شما را logout کرده است و دوباره باید وارد شوید . دلیل این مسئله پایان یافتن مدت زمان اعتبار یک کوکی است .
شکل کلی تعریف و ایجاد یک کوکی به وسیله تابع ( ) setcookie در PHP به صورت زیر است :
Syntax |
< ? php setcookie ( name , value , expire , path , domain ) ; ? > |
syntax توضیح هر یک از موارد | |
توضیح | پارامتر |
پارامتر name تعیین کننده نام کوکی است . از این نام برای بازیابی و فراخوانی کوکی در سطح برنامه استفاده می شود . | name |
پارامتر value مقدار کوکی را تعیین می کند .این مقدار بر روی کامپیوتر ذخیره می شود . | value |
پارامتر expire تعیین کننده مدت زمان اعتبار کوکی ، بر حسب ثانیه است . پس از اتمام این مدت زمان ، کوکی از بین خواهد رفت . برای تعیین مدت زمان اعتبار کوکی ، معمولا از تابع ( ) time استفاده می شود . |
expire |
این پارامتر تعیین کننده مسیری بر روی سرور سایت است که کوکی در آن ، قابل دریافت و ذخیره است . برای مثال اگر مقدار آن برابر با '/' تعیین شود ، در تمام سایت قابل دسترسی است . اما اگر روی مقدار /en/' تنظیم شود ، فقط در دایرکتوری en در سایت قابل دسترسی است . تعیین این پارامتر اختیاری است . |
path |
پارامتر domain ، دامنه ای که کوکی بر روی آن قابل دسترس است را تعیین می کند . برای مثال اگر مقدار آن 'www.rangine.ir' تنظیم شود ، فقط در این دامنه قابل دسترسی است . تعیین این پارامتر اختیاری است . |
domain |
مثال های عملی :
در مثال های زیر نحوه ایجاد چند کوکی را با پارامترهای مختلف به شما نمایش داده ایم :
مثال 1 :در مثال زیر یک کوکی به نام info با مقدار Mehrdad را ایجاد کرده ایم ، که برای مدت یک ساعت ( 3600 ثانیه ) اعتبار دارد . به کد مثال دقت نمایید :
Example |
< ? php setcookie ( " info ", " Mehrdad ", time( )+3600 ) ; ? > |
مثال 2 : در مثال دوم یک کوکی دیگر ایجاد کرده ایم ، که برای مدت یک سال اعتبار داشته ، ولی فقط در دامنه 'www.rangine.irاعتبار دارد :
Example |
< ? php $ expire = time( ) + 60 * 60 * 24 * 30 ; setcookie ( " info2 ", " rangine ", $expire , 'www.rangine.ir' ) ; ? > |