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

Image تحقیقات

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

سلام و درود

امروز درباره کوکی ها صحبت میکنیم.

اول یه مختصر توضیحی داشته باشیم. کوهی ها برای یک سایت خاص در مروگر کاربر ذخیره می شوند و سرورها با استفاده از  HTTP header دستور ساخت کوکی در مروگر کاربر را می دهند.وقتی هم که کوکی ما ساخته شده مروگرها با استفاده از یک  درخواست  HTTP header اطلاعات آن کوکی را به سرور میفرستند. تو این جلسه سعی میکنیم درباره مفاهیم کوکی..ارسال کوکی ساخت و مقداردهی کوکی و …. صحبت نماییم.

 

کوکی (cookie ) چیست ؟

همانطور که درسایت ویکی پدیا (Wikipedia) هم تعریف شده :

A cookie, also known as an HTTP cookie, web cookie, or browser cookie, is a small piece of data sent from a website and stored in a user’s web browser while the user is browsing that website. Every time the user loads the website, the browser sends the cookie back to the server to notify the website of the user’s previous activity.

کوکی ها با اسم های دیگه ای از جمله  HTTP cookie یا web cookie یا browser cookie  و… شناخته می شوند که در واقع یه تکیه کوچیکی از اطلاعات می باشند که زمانی که کاربر وبسایت رو مشاهده می نماید در مرورگر کاربر ذخیره می شوند  وقتی درآینده کاربر آن سایت را دوباره لود نماید ، آن کوکی به سرور ارسال شده تا فعالیت های قبلی کاربر در آن سایت مشخص شود.

 پس به عبارت ساده : کوکی ها اطلاعات کوچکی هستند که ما میتوانیم با استفاده از HTTP HEADER آنها را به مرورگر کاربر ارسال و یا دریافت نماییم.

برای اولین بار سرور اطلاعات مربوط به کوکی را به مرورگر ارسال می کند ، مرورگر اطلاعات ارسال شده را دریافت و ذخیره می نماید.هر وقت  درخواستی از همان سایت به سرور ارسال شد مروگر کوکی را به سرور میفرستد و سرور با توجه به فاکتورهایی مانند  expiry date, path و … کوکی را اعتبار سنجی می نماید . (در ادامه به این فاکتورها می پردازیم…)

 

 اعتبارسنجی کوکی ها (Validity of Cookie)

اعتبار کوکی ها به 4 فاکتور زیر بستگی دارد :

  1. مسیر (Path ) : کوکی ها همیشه برای یک مسیر خاص ولید هستند مثلا اگر ما برای مسیر /user/ یک کوکی ایجاد نماییم ما فقط در مسیر /user/ و مسیرهای فرزند (/user/1 یا /user/username) به آن کوکی دسترسی داریم.
  2. تاریخ انقضا (Expiration Time) : همه ی کوکی ها دارای یک تاریخ انقضا برای ازبین رفتن آن کوکی می باشند.
  3. HTTP Only : این پارامتر برای دلایل امنیتی می باشند . اگر شما نمیخواهید که مقادیر کوکلی خود در جاوا اسکریپت هم قابل دسترسی باشند این پارامتر را تنظیم می نمایید.
  4. Secure : این پارامتر زمانی مورد استفاده است که ما میخوام فقط در درخواست های https کوکی ما قابل دسترس باشد.

 

نمایش کوکی در مرورگرها

قبل از اینکه بریم سراغ ایجاد و حذف کوکی با استفاده از زبان php میریم سراغ اینک چگونه کوکی ها را در مرورگرهایی مانند موزیلا و گوگل کروم مشاهده نماییم.

گوگل کروم :

مراحل زیر را دنبال کنید :

  1. به Menu -> Tool ->Developer Tool  بروید و یا کلید F12 را فشار دهید.
  2. باکس  developer tool باز می شود
  3. حالا به تب Resource بروید.
  4. وقتی روی Resource کلیک کنید در آیتم های سمت چپ تمام منابع رو مشاهده می نمایید.از آیتم های سمت چپ روی cookie کلیک کنید.
  5. بر روی دامین مربوطه کلیک نمایید تا تمام کوکی های استفاده شده در پنل سمت راست نمایش یابد.

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

 

فایرفاکس :

  1. به ادرس Tool -> Option بروید و روی Privacy  کلیک نمایید.
  2. بر روی remove individual cookies کلیک نمایید.
  3. در صفحه ی باز شده لیست تمام کوکی ها را مشاهده می کنید که میتونید دامین مورد نظر خودتون رو اونجا جستجو نمایید.

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

PHP and Cookies

در زبان php ما میتوانیم یک کوکی را به راحتی بسازیم ، ویرایش کنیم و پاک نماییم.

همانطور که میدانید کوکی ها در http header ارسال می شوند برنابراین قبل از اینکه هر گونه مطبی فرستاده شود آنها ایجاد شده باشند در غیر اینصورت به ارور php مواجه خواهیم شد ( error of header already sent).در واقع کوکی ها قسمتی از http Header iهستند.

مثالی از یک HTTP response header به همراه کوکی :

HTTP/1.1 200 OK
Date: Tue, 02 Sep 2014 01:26:00 GMT
Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9
X-Powered-By: PHP/5.2.9
Set-Cookie: testcookie=testval; expires=Wed, 03-Sep-2014 11:23:02 GMT; path=/
Content-Length: 1
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

مثال یک HTTP header request :

 تابع () PHP header

ما با استفاده از تابع header می توانیم یک درخواست  HTTP header request برای ساخت کوکی در مروگر کاربر ایجاد نماییم :

به عنوان مثال :




<?php
if(count($_COOKIE) > 0) {
    echo "Cookies are enabled.";
} else {
    echo "Cookies are disabled.";
}


 

جلسه امروز هم به پایان رسید.

موفق و پیروز باشید.