آموزش PHP   >   راهکارهای موثر در PHP > راهکار 1 : ثبت نام و شناسایی کاربران در وب سایت ها
بخش سوم - طراحی کوکی لازم برای حفط مشخصات کاربر

مرحله اول - مقدمه و معرفی پایگاه داده :

هنگامی که کاربر مشخصات خود را وارد نموده و به سایت در اصطلاح log in می کند ، بایستی مشخصات آن را به نحوی بر روی مرورگر ذخیره کرد تا در هنگام پیمایش بین صفحات مختلف مجبور نباشد ، مجددا اطلاعات کاربری خود را وارد نماید .
در صفحات HTML یا PHP برای ذخیره اطلاعات موقتی بر روی مرورگر کاربر از کوکی ها یا Session ها استفاده می شود .
Session یک متغیر است که اطلاعات مورد نظر ما را برای مدت زمان مشخصی بر روی کامپیوتر کاربر ذخیره می کند . معمولا با بستن مرورگر ، اطلاعات Session نیز از بین می رود .
در کد صفحه login.php که در مرحله قبل به بررسی آن پرداختیم ، بخشی برای ایجاد و ذخیره اطلاعات به وسیله Session نیز وجود داشت که در ادامه به تشریح آن می پردازیم . این بخش به صورت زیر است :

کد if ($num_rows > 0) {
     session_start();
    $_SESSION['login'] = "1";
    header ("Location: page1.php");

  }
else {
    $errorMessage = "Invalid Login";
    session_start();
    $_SESSION['login'] = '';

  }

به وسیله دستور زیر ، عملیات Session شروع می شود :

کد     session_start();

سپس به وسیله دستور زیر و تعیین نام Session ، همانند یک متغیر نام مورد نظر خود یعنی login و مقدار 1 را برای آن تعیین می کنیم :

کد $_SESSION['login'] = "1";

همانطور که متوجه شدید ، این بخش از کد زمانی اجرا می شود که کاربر به صورت موفقیت آمیز به سایت log in کرده باشد .
سپس به وسیله دستور header ، کاربر را به صفحه ای می خواهیم تا پس از log in به سایت مشاهده نماید ، راهنمایی می کنیم . این دستور به شکل زیر است :

کد header ("Location: page1.php");

حال اگر ورود کاربر به سایت موفقیت آمیز نباشد ، بخش else دستور به صوزت زیر اجرا می شود :

کد else {
   $errorMessage = "Invalid Login";
   session_start();
   $_SESSION['login'] = '';
  }

در خط اول ، یک پیام خطا به نشانه ورود ناموفق به متغیر خطای صفحه اضافه می شود . سپس مجددا متغیر Session را اجرا می کنیم . این بار نیز ، نام login را به متغیر Session داده ولی مقدار آن را خالی تعیین می کنیم ، به معنای اینکه کاربر نتوانسته وارد سایت شود .

کد $_SESSION['login'] = '' ";

با مقدار خالی ای که به متغیر Session داده ایم ، اگر کاربر بخواهد به بخش های محدود شده و متعلق به اعضای سایت وارد شود ، برنامه جلوی وی را گرفته و وی را به صفحه login ( برای ورود به سایت ) هدایت می کند .
نکته مهم : اگر قابلیت کوکی ، بر روی مرورگر شما غیر فعال باشد ، کدهای فوق اجرا نخواهد شد . این مسئله به آن دلیل است که در هنگام اجرای دستور ( ) Session_Start ، موتور PHP یک پارامتر را به نام Session ID به مرورگر ارسال می کند . این پارامتر شامل رشته ای از حروف و اعداد بوده و PHP سعی می کند تا آن را بر روی حافظه مرورگر ذخیره کند . اما اگر قابلیت کوکی خاموش باشد ، PHP امکان ذخیره این پارامتر را نخواهد داشت .

خلاصه و جمع بندی :

کارهایی که تا این بخش از راهکار انجام دادیم ، عبارتند بودند از :

  • دریافت مقادیر username و password از کادرهای متن مربوطه در فرم HTML .
  • ایجاد و برقراری یک ارتباط فعال با پایگاه داده .
  • چک کردن وجود یا عدم وجود اطلاعات کاربری کاربر .
  • چک کردن اینکه آیا رکوردی در جواب برگشتی از پایگاه داده وجود داشته یا خیر .
  • اگر رکورد یا رکوردهایی از جدول بازگردانده شده ، مقدار متغیر Session را بر روی 1 تنظیم کنیم .
  • اگر رکوردی از پایگاه داده بازگشت داده نشده ، مقدار متغیر Session را بر روی مقدار خالی " " تنظیم کنیم .
  • طراحی و نمایش پیام های لازم در هنگام بروز خطا .

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

                  مرحله قبلی                   مرحله بعدی


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه  :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :               
آدرس Email :  

نظر شما :      
سوال امنیتی : جمع سه + پنج چنده ؟