آموزش کامل PHP – قسمت 21: کوکی ها

کوکی ها در php

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

تفاوت session و cookie

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

با استفاده از کد های php می توان کوکی ها را ایجاد، مقدار دهی و در مواقع لازم فراخوانی کرد. برای تعریف یک کوکی جدید از تابع setcookie استفاده می کنیم. به کد زیر توجه کنید:

<?php

setcookie (name, value, expire, path, domain, secure, httponly);

?>

برخی از ورودی های تابع فوق اختیاری و بعضی دیگر الزامی هستند.

توضیح ورودی های تابع:

  • name: نام کوکی جدید که قصد تعریف آن را داریم
  • value: مقداری که می خواهیم در کوکی مورد نظرمان ذخیره شود
  • expire: مدت زمانی که کوکی پس از آن متقضی خواهد شد (بر حسب ثانیه)
  • path: تعیین مسیر ذخیره کوکی در سرور
  • domain: تعیین اینکه کوکی در چه دامینی در دسترس باشد
  • secure: تعیین اینکه آیا کوکی فقط در ارتباطات امن در دسترس باشد یا خیر
  • httponly: اگر این مقدار true باشد کوکی فقط از طریق http در دسترس خواهد بود

در کد زیر یکی کوکی جدید به نام name می‌سازیم و مقدار آن را برابر با mohammad قرار می‌دهیم. همچنین زمان انقضای این کوکی را ۳۰ روز می‌خواهیم تعیین کنیم و بنابراین ۸۴۰۰۰ ثانیه را در ۳۰ ضرب کرده و نتیجه را برای زمان انقضا در نظر گرفته‌ایم. کاراکتر / به معنای در دسترس بودن کوکی در سراسر دامین است. برای دسترسی به مقدار کوکی همانند سشن‌ها از COOKIE_$ استفاده کرده‌ایم.

<?php

$value = "mohammad";

setcoockie ("user", $value, time() + (86400 * 30), '/');

if (isset($_COOKIE['user'])

{

    echo "cookie is set and this cookie is: $_COOKIE['user']";

}

?>

در کد بالا تابع isset را در شرط if بکار برده‌ایم. این تابع بررسی می‌کند که آیا آنچه قصد بررسی‌اش را داریم حاوی مقدار است یا خیر. همچنین تابع time زمان کنونی سرور را برمی‌گرداند.

نکته مهم در مورد استفاده از تابع setcoockie این است که باید حتما پیش از تگ <html> از آن استفاده کنید. مقادر ذخیره شده در کوکی‌ها به صورت رمزنگاری شده درمی‌آیند و هنگام فراخوانی مجددا به صورت خودکار از حالت رمزنگاری شده خارج می‌شوند. با این وجود هیچگاه برای ذخیره سازی اطلاعات مهم از کوکی‌ها استفاده نکنید.

از سشن‌ها و کوکی‌ها برای هویت سنجی کاربران می‌توان استفاده کرد. تقریبا می‌توان گفت که بیشتر سایت‌هایی که با پی‌اچ‌پی ایجاد شده‌اند، از کوکی و سشن یا ترکیبی از این دو برای بخش ورود کاربران، ورود به بخش مدیریت سیستم و… استفاده می‌کنند.

در قسمت بعدی cms نوشته در جلسات قبل را ارتقا می دهیم و بخشی برای ورود مدیر ایجاد کنیم که از طریق آن بتوان فقط در صورتی که نام کاربری و رمزعبور مربوطه را داریم اقدام به ارسال مطلب و دسترسی به بخش‌های مدیریت داشته باشیم.

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

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *