آموزش کار با کوکی Cookies در زبان PHP

آموزش کار با کوکی Cookies در زبان PHP

آموزش کار با کوکی Cookies در زبان PHP

Learning Work Whit Cookies In PHP

 

 از کوکی (Cookie) معمولا برای شناسایی کاربر بر روی وب استفاده می شود. یک کوکی (cookie) یک قطعه اطلاعات یا یک فایل اضافه است که سرور به کامپیوتر کاربر الحاق یا embed می کند. هر بار که کامپیوتر صفحه ای را طی یک درخواست یا request فراخوانی کند اطلاعات کوکی به همراه درخواست وی ارسال می شود. استفاده از زبان PHP هم می توانید برای کاربران کوکی ایجاد کرده و یا مقادیر کوکی را دریافت کنید.
برای مثال، مثلا وقتی صفحه که صفحه ایمیل خود را باز می کنید ، مشاهده می کنید که از قبل بر روی سرور log in شده اید و اطلاعات حساب کاربری شما در مرورگر نمایش داده می شود. این اطلاعات کاربری از طریق کوکی موجود در صفحه هر بار که ایمیل خود را باز می کنید، به سرور ارسال می شود.
آموزش ایجاد کوکی Cookie در زبان PHP :

کوکی در زبان PHP به وسیله تابع setcookie() ایجاد می شود. ساختار تعریف Cookie به صورت زیر است :
setcookie(name, value, expire, path, domain, secure, httponly);
در ساختار فوق فقط تعیین پارامتر name ضروری بوده و بقیه پارامترها اختیاری هستند. پارامتر name تعیین کنننده نام Cookie است که از آن برای فراخوانی و شناسایی کوکی در سطح برنامه استفاده می شود.
مثال عملی : کد زیر یک کوکی به نام “user” با مقدار “John Doe” را ایجاد می کند. این کوکی بعد از 30 روز (86400*30) منقضی می شود. به کار بردن علامت (/) به این معناست که این کوکی در کل سطح برنامه یا سایت قابل دسترس خواهد بود (یا می توانید یک پوشه یا مسیر دیگری را تعیین کرده که کوکی فقط در آن بخش قابل دسترس باشد.)
سپس با استفاده از متغیر سراسری $_COOKIE مقدار کوکی User را خوانده ایم. همچنین از تابع isset() برای فهمیدن این که آیا کوکی تنظیم شده یا خیر استفاده کرده ایم :
<!--?php
  $cookie_name = "user";
  $cookie_value = "John Doe";
  setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?-->
< html>
< body>
  <!--?php
    if(!isset($_COOKIE[$cookie_name])) {
      echo "Cookie named '" . $cookie_name . "' is not set!";
     } else {
        echo "Cookie '" . $cookie_name . "' is set!<br-->";
        echo "Value is: " . $_COOKIE[$cookie_name];
   }
  ?>
< /body>
< /html>

تابع Setcookie() را بایستی قبل از تگ تعریف کنید.
مقدار یا value کوکی به صورت خودکار در زمان ارسال URLencoded می شود.(یعنی کاراکترهای غیر مچاز آن به صورت قابل ارسال با استفاده از URL تبدیل می کنیم) و همچنین در هنگام دریافت آن URLdecoded می گردد. برای جلوگیری از رخ دادن URLencoding از تابع setrowcookie() به جای تابع فوق استفاده کنید.)
آموزش تغییر مقدار یک کوکی در زبان PHP :

برای تغییر مقدار یک کوکی، بایستی مجددا آن کوکی را با استفاده از تابع setcookie() تعریف کنید. به صورت کد زیر :
<!--?php
  $cookie_name = "user";
  $cookie_value = "Alex Porter";
  setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?-->
< html>
< body>
  <!--?php
    if(!isset($_COOKIE[$cookie_name])) {
        echo "Cookie named '" . $cookie_name . "' is not set!";
    } else {
        echo "Cookie '" . $cookie_name . "' is set!<br-->";
        echo "Value is: " . $_COOKIE[$cookie_name];
    }
  ?>
< /body>
< /html>
آموزش حذف یک کوکی در PHP :

برای حدف یک کوکی، بایستی با استفاده از تابع setcookie() مجددا آن را تنظیم کرده ولی این بار تاریخ انقضای کوکی را بر روی یک زمان ماقبل از زمان فعلی قرار دهید، همانند کد زیر:
<!--?php
  // set the expiration date to one hour ago
  setcookie("user", "", time() - 3600);
?-->
< html>
< body>
  <!--?php
    echo "Cookie 'user' is deleted.";
  ?-->
< /body>
< /html>
آموزش چک کردن فعال بودن کوکی در مرورگر کاربر :

مرورگرها و یا سایت های تحت وب این قابلیت را دارند که خواندن یا ایجاد کوکی ها را در آن ها غیر فعال کرد. بنابراین در برنامه هایی که استفاده از کوکی ضروری است، بایستی قبل از طراحی کد، چک کنیم آیا این امکان فعال است یا خیر.
در کد مثال عملی زیر، یک اسکریپت ساده ابتدا چک می کند که آیا کوکی ها فعال هستند یا خیر. در ابتدای کد تلاش شده تا با استفاده از تابع setcookie() یک کوکی به نام “test_cookie” ایجاد شود، با شمارش تعداد متغیر $_COOKIE می فهمیم آیا کوکی فعال است یا خیر :
?

<!--?php
  setcookie("test_cookie", "test", time() + 3600, '/');
?-->
< html>
< body>
  <!--?php
   if(count($_COOKIE) --> 0) {
      echo "Cookies are enabled.";
    } else {
      echo "Cookies are disabled.";
    }
  ?>
< /body>
< /html>

نظرات خود را ارسال کنید