کوکی ها در php

کوکی ها در php

کوکی یک قطعه اطلاعات است که سرور بر روی کامپیوتر کاربر ذخیره کرده و در مراجعات کاربر به همان سایت ، از آن اطلاعات برای شناسایی وی استفاده می کند . این اطلاعات معمولا راجع به شناسه کاربری ، رمز عبور ، تنظیمات یک کاربر بر روی سایت و … می باشد . زمانی که کاربر به وسیله کامپیوتر خود همان سایت را باز می کند ، مرورگر اطلاعات کوکی ها را به سرور ارسال می کند . از کوکی برای بازیابی اطلاعات کاربری و یا سایر تنظیماتی که کاربر در یک سایت ایجاد کرده است ، در مراجعات بعدی به همان سایت استفاده می شود .

کوکی ها در php کوکی ها در php کوکی ها در php cookies in php

کوکی ها در php

برای مثال فرض کنید که در یک سایت فروم عضو شده و یک رمز عبور و شناسه کاربری را برای خود تعیین کرده اید . هنگامی که برای اولین بار اطلاعات کاربری خود را در مرورگر وارد می کنید ، این اطلاعات در یک کوکی بر روی مرورگر کامپیوتر شما ذخیره می شود . هنگامی که در مراجعه بعدی به همان سایت می روید ، متوجه می شوید که مرورگر اطلاعات کاربری شما را وارد نموده و شما log in شده اید ، بدون اینکه خودتان کاری انجام داده باشید . در واقع مرورگر از کوکی برای ایجاد ، ذخیره و ارسال مجدد این اطلاعات به سرور استفاده کرده است .

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

 به عبارتی: Cookie ها فایل های متنی هستند که در رایانه ی سرویس گیرنده به منظور ردیابی {tracking} کاربر ذخیره می شوند.PHP مشخصا و بدون شک از cookie های  HTTP پشتیبانی می کند.شناسایی returning users سه مرحله دارد.

  • server script {پردازه ی سرویس دهنده} مجموعه ای از کوکی ها را به مرورگر می فرستد. مانند: نام، سن، شماره ی شناسایی و غیره.
  • مرورگر این اطلاعات را در صورت نیاز در آینده بر روی سیستم ذخیره می کند.
  • دیگر بار که مرورگر درخواستی را به web server می فرستد، همان اطلاعات cookie را به سرویس هنده {server} ارسال می کند و server هم از این اطلاعات برای شناسایی کاربر استفاده می کند.

این قسمت به شما نحوه ی انتخاب کردن، دست یافتن و پاک کردن cookie ها را آموزش می دهد.

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

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

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

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

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

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

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

تشریح ساختار cookie

cookie ها را باید در header {هدر} http معین و تنظیم کرد. (گر چه javascript همچنان می تواند cookie را مستقیم روی خود مرورگر تنظیم کرده و قرار دهد.) یک PHP script ای که cookie را تنظیم می کند ممکن است header هایی بفرستد به صورت زیر:

همان طوری که مشاهده می کنید، هِدِر انتخاب شده توسط cookie دربردارنده ی یک جفت اسم، مقدار {name، value}، تاریخ GMT {تاریخ مطابق با زمان گرینویچ}، یک مسیر و دامنه است. name و value با آدرس URL کدگذاری می شوند. expire یک فرمان است که به مرورگر دستور می دهد تا cookie را پس از گذشت زمان و تاریخ معین شده فراموش کند{از حافظه ی مرورگر پاک کند}.

اگر مرورگر را طوری تنظیم کرده باشید که cookie ها را ذخیره کند، مرورگر این اطلاعات را تا تاریخ انقضا، ذخیره نگه می دارد. اگر کاربر مرورگر را به صفحه ای آدرس دهی کند که با مسیر و دامنه cookie مطابقت داشته باشد، cookie را دوباره به server می فرستد. هِدِرهای مرورگر ممکن است به این صورت باشد.

PHP در مقادیر محیطی $_COOKIE و$_HTTP_COOKIE_VARS[] ، که اسم ها و مقادیرcookie را دارد، به cookie ها دسترسی پیدا می کند. باید برای دست یافتن به cookie بالا از این $HTTP_COOKIE_VARS[“name”]. استفاده کنید.

ایجاد کوکی ها در php :

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

  1. نام
  2. مقدار
  3. مدت زمان اعتبار *

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

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

 

 

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

 

domain

حذف کردن کوکی ها (cookie) از کامپیوتر کاربر، درphp

گاهی اوقات، با ایجاد تغییرات جدید در سایت، تصمیم می گیریم که کوکی هایی (cookie) که قبلا توسط سایت ما در کامپیوتر کاربر، ذخیره شده است را پاک کنیم. برای این منظور، نیاز به استفاده از روش پیچیده ای نیست و با کدهایی، مشابه کدهای ساخت کوکی در کامپیوتر کاربر، می توان این کار را انجام داد.

فرض کنید که قبلا کدهای زیر را اجرا کرده باشیم :

 این کدها باعث می شود که یک کوکی با نام my_cookie و مقدار ۱۱۰ و با زمان اعتباری برابر یک هفته، در کامپیوتر کاربر ذخیره شود. اکنون قصد داریم که این کوکی (cookie) را از کامپیوتر کاربر حذف کنیم. برای این منظور، مدت زمان اعتبار کوکی را به یک عدد منفی تغییر می دهیم. در واقع کافی است که همان کدهای ساخت کوکی را بنویسیم و تنها علامت مثبت بعد از تابع time را به علامت منفی تغییر بدهیم. بنابراین کدهای زیر را اجرا می کنیم :

بنابراین کوکی (cookie) مورد نظر، از کامپیوتر کاربر، حذف می شود.

 

آموزش PHP آموزش طراحی وب

دسته بندی و برچسب

دیدگاه خود را بیان کنید