Cookie ها در php ( آموزش Cookie )

در این جلسه تیم کدگیت قصد دارد شما را با روش انتقال متغیر به کمک Cookie ها در php آشنا سازد پس در این آموزش ما را همرایی کنید.

گاهی لازم است که شما یکسری داده را به شکل متغیر از یک صفحه php به صفحه ای دیگر انتقال دهید برای این کار شما می توانید به کمک روش های زیر یک متغیر را از یک صفحه php به صفحه دیگر انتقال دهید:

  •  انتقال متغیر با URL
  • انتقال متغیر با Post و Get
  •  انتقال متغیر به وسیله Session
  • انتقال متغیر به وسیله Cookie
  • انتقال متغیر به وسیله فرم های HTML

در این قسمت قصد آموزش انتقال متغیر به وسیله Cookie ها در php  را به شما عزیزان داریم و در قسمت های آینده به سایر بخش ها نیز خواهیم پرداخت.

Cookie ها در php

Cookie ها فایل های متنی (text)  هستند که در رایانه ی کاربر (client) ذخیره می شوند.اغلب  Cookie ها در php جهت ذخیره موارد اطلاعاتی کاربران که در مراجعات بعد به آن صفحه مورد نیاز است استفاده می شوند.PHP از جمله زبانهای سمت سروری است که به طور کامل از cookie های  HTTP پشتیبانی می کند.

روش کار Cookie ها در php به شکل زیر می باشد:

  1.  سرویس دهنده (Server) مجموعه ای از کوکی ها را به مرورگر می فرستد. مانند: نام، سن، شماره ی شناسایی و غیره.
  2. مرورگر این اطلاعات را در صورت نیاز در آینده بر روی سیستم ذخیره می کند.
  3. بار دیگر که مرورگر درخواستی را به web server می فرستد، همان اطلاعات cookie را به سرور ارسال می کند و serverهم از این اطلاعات برای شناسایی کاربر استفاده می کند.

ساختن Cookie ها در php

زبان PHP برای ایجاد cookie از تابع setcookie بهره می گیریم. این تابع به 6 تا ورودی یا همان آرگومان نیاز دارد و باید پیش از تگ <html>  برای هرcookie ، این تابع جداگانه فراخوانی شود.

setcookie(name، ‏‎ value، ‏‎ expire، ‏‎ path، ‏‎ domain، ‏‎ security);‎

توضیحات هر یک از آرگومان های تابع بالا در زیر نوشته شده است:

name : این ورودی،نام cookie می باشد و در  HTTP_COOKIE_VARS  ذخیره می گردد.(HTTP_COOKIE_VARS یک نوع از environment variable ها هستند که در آینده در مورد آن بحث خواهیم نمود) این متغیر زمانی که می خواهید به cookie دسترسی پیدا کنید، مورد استفاده قرار می گیرد.

value  : این ورودی مقداری می باشد که شما قرار است در Cookie که ساخته اید ذخیره کنید.

Expiry : این ورودی زمانی می باشد که Cookie با رسیدن به آن دیگر قابل دسترس نیست (زمان انقضا Cookie) و از روی مرورگر کاربر حذف شده است.در صورتی که این زمان مشخص نگردد Cookie به صورت خودکار موقع بسته شدن مرورگر پاک خواهد شد.البته معمولا در این قسمت بجای وارد کردن مستقیم تاریخ از تابع time در زبان php استفاده می کنند که در مثال آینده نحوی استفاده از آن را به شما نمایش خواهیم داد.

path : این ورودی دایرکتوری که  cookie برای آن ها  معتبر است را مشخص می کند. علامت  ( / ) در این قسمت به cookie اجازه می دهد که برای همه ی داریکتوری ها معتبر باشد.

Domain : از این ویژگی برای مشخص کردن اسم دامین (دامنه) در دامین های (دامنه) بسیار بزرگ می توان کمک گرفت. تمامی cookie ها فقط برای host و دامنه ای که آن را به وجود آورده معتبر اند.

security : این گزینه حتماً باید روی 1 تنظیم شود تا مشخص شود که cookie را فقط باید با پورت امن  HTTPS  ارسال کنیم، در غیر این اگر مایل بودیم  (همچنین واقعا لازم بود) بر روی 0 تنظیم می کنیم. با تنظیم این ورودی روی 0 بدان معناست که سرور می تواند cookie را با HTTP  بفرستد.

مثال زیر دو cookie، age و name را که پس از گذشت یک ساعت باطل می کند و در زیر نمایش می دهد.

دستیابی به  cookie در PHP

PHP راه های مختلفی برای دستیابی به cookie در اختیار شما قرار می هد. آسان ترین راه، انتخاب یکی از این دو متغیر COOKIE_$  یا HTTP_COOKIE_VARS_$ می باشد. در مثال زیر نحوی دستیابی به cookie های بالا را به شما آموزش می دهد.

نکته ای مهم!!!

یکی از مشکلاتی که ممکن است متوجه آن شده باشید عدم وجود cookie از قبل و یا رسیدن تاریخ انقضای آن می باشد.اگر بدون بررسی اوله سعی کنیم از کوکی ها استفاده نماییم این امر احتمالا موجب بروز خطا خواهد شد. برای جلوگیری از اینگونه خطاها از تابع isset جهت بررسی موجود کوکی و سایر متغیر ها در php استفاده می کنیم. در زیر مثالی از نحوی استفاده از کوکی ها را به شما نمایش می هد:

پاک کردن cookie با PHP

پاک کردن کوکی ها یک کار غیر معمول است ولی گاها لازم می شود که کوکی های کاربر پاک شود یکی از روش های پاک کردن کوکی ها صدا زدن تابع setcookie و وارد کردن فقط متغیر نام می باشد ولی تجربه نشان داده که این روش مطمئنی نیست و ممکن است که کوکی پاک نشده و مشکل ساز شود. به جای آن می توانید از روش مطمئن دیگری استفاده کنید بدین صورت که همان طور که کوکی افزوده اید آن را اضافه نمایید ولی با این تفاوت که تاریخ انقضایی قبل از تاریخ کنونی بدهید بدین ترتیب کوکی شما که ممکن است در سیستم کاربر موجود باشد قبل از به وجود آمدن پاک خواهد شد!!!

برای درک مطلب فوق به مثال زیر توجه فرمایید:

در اینجا مبحث آموزش Cookie ها در php به پایان می رسد امیدواریم توانسته باشیم حق مطلب را ادا کنیم.

پسورد: www.codegate.ir

دسته : php

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz