آموزش کوکی ها در PHP

3 سال پیش
آموزش کوکی ها در PHP

آموزش کوکی ها در PHP

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کوکی ها در PHP خواهیم پرداخت.

کوکی ها پرونده های متنی هستند که در رایانه مشتری ذخیره می شوند و از اهداف ردیابی استفاده می شوند. PHP به طور شفاف از کوکی های HTTP پشتیبانی می کند.

در شناسایی کاربران بازگشتی سه مرحله وجود دارد –

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

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

 

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

کوکی ها معمولاً در هدر HTTP تنظیم می شوند (اگرچه JavaScript می تواند کوکی ها را مستقیماً روی مرورگر تنظیم کند). یک اسکریپت PHP که یک کوکی را تنظیم می کند ممکن است عناوینی را ارسال کند که شبیه این هستند –

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

 

همانطور که مشاهده می کنید ، سربرگ Set-Cookie شامل یک جفت مقدار نام ، یک تاریخ GMT ، یک مسیر و یک دامنه است. نام و مقدار URL رمزگذاری خواهد شد. قسمت expires دستورالعمل مرورگر برای “فراموش کردن” کوکی پس از زمان و تاریخ داده شده است.

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

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 – این مقدار متغیر نامگذاری شده را تنظیم می کند و محتوایی است که شما واقعاً می خواهید ذخیره کنید.
  • انقضا – این زمان آینده را در چند ثانیه از ساعت ۰۰:۰۰:۰۰ به وقت گرینویچ در تاریخ ۱ ژانویه ۱۹۷۰ مشخص می کند. پس از این زمان ، کوکی غیرقابل دسترسی می شود. اگر این پارامتر تنظیم نشده باشد ، با بسته شدن مرورگر وب ، کوکی به طور خودکار منقضی می شود.
  • مسیر – این فهرست هایی را که کوکی برای آنها معتبر است مشخص می کند. یک کاراکتر بریده بریده به جلو اجازه می دهد تا کوکی برای همه دایرکتوری ها معتبر باشد.
  • دامنه – این می تواند برای تعیین نام دامنه در دامنه های بسیار بزرگ استفاده شود و برای معتبر بودن باید حداقل شامل دو دوره باشد. همه کوکی ها فقط برای میزبان و دامنه ایجاد کننده آنها معتبر هستند.
  • امنیت – می توان روی ۱ تنظیم کرد تا مشخص شود که کوکی فقط باید با انتقال ایمن با استفاده از HTTPS ارسال شود در غیر این صورت ۰ تنظیم شده است که به معنای ارسال کوکی توسط HTTP معمولی است.

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

<?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"]. "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["age"] . "<br />";
      ?>
      
   </body>
</html>

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

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

 

حذف کوکی با PHP

 

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

تنظیم کوکی با تاریخی که از قبل منقضی شده باشد ایمن ترین است –

<?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>

 

منبع.

لیست جلسات قبل آموزش PHP

  1. آموزش PHP
  2. معرفی PHP
  3. آموزش تنظیمات محیط PHP
  4. آموزش نحو PHP
  5. آموزش انواع متغیر در PHP
  6. آموزش انواع ثابت ها در PHP
  7. آموزش انواع عملگرها در PHP
  8. آموزش تصمیم گیری در PHP
  9. آموزش انواع حلقه در PHP
  10. آموزش آرایه ها در PHP
  11. آموزش رشته ها در PHP
  12. آموزش مفاهیم وب در PHP
  13. آموزش روش های  GET & POST در PHP
  14. آموزش Inclusion فایل در PHP
  15. آموزش پرونده ها و I / O در PHP
  16. آموزش توابع در PHP
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه