آموزش کوکی در php

php cookies

کوکی ها در PHP

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

سه مرحله در شناسایی مراجعه دوباره کاربران وجود دارد:

  • اسکریپت سرور مجموعه ای از کوکی ها را به مرورگر می فرستد. به عنوان مثال نام ، سن، شماره شناسنامه و غیره.
  • مرورگر این اطلاعات را بر روی دستگاه محلی برای استفاده در آینده ذخیره می کند.
  • هنگامی که مرورگر برای دفعات بعدی، هر درخواستی را به وب سرور ارسال می کند، اطلاعات کوکی آنها را نیز  به سرور می فرستد و سرور از این اطلاعات برای شناسایی کاربران استفاده می کند.

این بخش به شما آموزش می دهد، چگونه کوکی ها را تنظیم کنید، چگونه به آنها دسترسی داشته باشید و چگونه آنها را حذف کنید.

آناتومی یک کوکی

کوکی ها معمولا در هدر HTTP تنظیم می شوند (هر چند جاوا اسکریپت می تواند کوکی را به طور مستقیم در مرورگر تنظیم کند). یک اسکریپت PHP که یک کوکی را تنظیم می کند ممکن است header را ارسال کند که چیزی شبیه این است.

HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=tutorialspoint.com Connection: close Content-Type: text/html

همانطور که می بینید، هدر تنظیم کوکی شامل نام (name)، مقدار( value)، تاریخ  GMT(GMT date)، یک مسیر (path) و یک دامنه (domain) است. نام و مقدار کد گذاری URL خواهند شد. تاریخ انقضا یک دستورالعمل به مرورگر است تا  کوکی را پس از زمان و تاریخ داده شده “فراموش” کند.

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

GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz

یک اسکریپت PHP به کوکی­ها در محیط متغیرهای  COOKIE _$ و یا []HTTP_COOKIE_VARS $ نیز دسترسی دارد که دارای نام تمام کوکی­ها و مقادیر است. کوکی­های فوق می تواند با استفاده از $HTTP_COOKIE_VARS[“name”] قابل دسترسی باشد.

تنظیم کوکی ها با PHP

PHP تابع ()setcookie  را برای تنظیم کوکی ارائه داده است. این تابع نیازبه شش آرگومان دارد و باید قبل از آن تگ <HTML>  قرار گیرد. برای هر کوکی این تابع به صورت جداگانه تعریف می شود.

setcookie(name, value, expire, path, domain, security);

در اینجا جزئیات تمام آرگومان­ها آورده شده است:

Name – نام کوکی را تنظیم می کند و در یک متغیر محیطی به نام HTTP_COOKIE_VARS ذخیره می کند. این متغیر تا موقعی که کوکی در دسترس است استفاده می شود.

Value – مقدار متغییر نامگذاری شده را مشخص می کند و همچنین محتوایی که شما می خواهید ذخیره کنید را مشخص می کند.

Expiry – یک زمان آینده به ثانیه مشخص می کند. تعداد ثانیه از اول  (۰۰:۰۰:۰۰ GMT) ژانویه   ۱۹۷۰ می باشد. پس از این زمان کوکی غیر قابل دسترس خواهد شد. اگر این پارامتر تنظیم نشود، کوکی به طور خودکار زمانی که مرورگر وب بسته شود منقضی خواهد شد.

Path– دایرکتوری را که کوکی روی آن معتبر است را مشخص می کند. یک کاراکتر اسلش تنها (/) به این معنی است که کوکی که بر روی همه دایرکتوری­ها معتبر است.

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

امنیت – این آرگومان را  می توان به ۱ تنظیم کرد.  که به این معنی است که کوکی را تنها باید توسط انتقال امن با استفاده از HTTPS ار سال کرد در غیر این صورت به ۰ تنظیم کنید که  به معنی این است که کوکی را می توان با HTTP عادی نیز ارسال کرد.

مثال زیر دو کوکی به نام های name  و  age ایجاد خواهد کرد که پس از یک ساعت منقضی خواهند شد.

<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?>
<html>
   
   <head>
      <title>Setting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Set Cookies"?>
   </body>
   
</html>

دسترسی به کوکی ها با PHP

PHP راه های بسیاری را برای دسترسی به کوکی ها فراهم کرده است. ساده ترین راه استفاده از متغیرهای $_COOKIE یا $HTTP_COOKIE_VARS است. مثال زیر به تمام کوکی های تنظیم شده در بالا دسترسی خواهد داشت.

<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php echo $_COOKIE["name"]. " "; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. " "; echo $_COOKIE["age"] . " "; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"] . " "; ?>
      
   </body>
</html>

شما می توانید از تابع ()isset برای بررسی اینکه یک کوکی تنظیم شده است یا نه استفاده کنید.

<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . " "; else echo "Sorry... Not recognized" . " "; ?>
      
   </body>
</html>

حذف کوکی با PHP

به طور رسمی، برای حذف یک کوکی شما باید ()setcookie را تنها با آرگومان name (نام) فراخوانی کنید. اما این همیشه به خوبی کار نمی کند. به هر حال نباید به آن اعتماد کرد.
تنظیم کوکی با یک تاریخی که قبلا منقضی شده امن تر است

<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?>
<html>
   
   <head>
      <title>Deleting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Deleted Cookies" ?>
   </body>
   
</html>

برچسب ها

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

0 دیدگاه در “آموزش کوکی در php”

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

کد امنیتی را در کادر زیر بنویسید *