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


آموزش کار با کوکی Cookies در زبان 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() برای فهمیدن این که آیا کوکی تنظیم شده یا خیر استفاده کرده ایم :

    < html>  < body>    ";          echo "Value is: " . $_COOKIE[$cookie_name];     }    ?>  < /body>  < /html>  
نکته1:

تابع Setcookie() را بایستی قبل از تگ تعریف کنید.

نکته2:

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

دیدگاهتان را بنویسید