آموزش ساخت صفحه ورود و فرم ثبت نام با php و MySQL

فرم ثبت نام کاربران و ورود به سایت از جمله زیرساخت‌های مورد نیاز در طراحی سایت و نرم‌افزارهای تحت وب به شمار می‌رود.

در ادامه روش ساخت فرم ورود و ثبت نام را با استفاده از زبان php و پایگاه داده MySQL بررسی خواهیم نمود. در این مقاله برای ارتباط با پایگاه داده از رابط PDO استفاده خواهیم کرد.

همچنین آخرین نکات امنیتی برای حفظ حریم خصوصی کاربران را به کار خواهیم گرفت تا امنیت سیستم تا بالاترین حد ممکن در دسترس قرار گیرد.

طراحی فرم ثبت نام

ابتدا لازم است تا جدول پایگاه داده که فهرست کاربران را در آن ذخیره می‌کنیم، ساخته شود. برای این منظور، جدولی با نام users و شامل سه فیلد id، username و password ایجاد خواهیم کرد:

جدول کاربران برای ثبت نام

همان گونه که در تصویر فوق مشخص است، ستون id از نوع AUTO_INCREMENT تعریف شده و کلید اصلی یا PRIMARY نیز مشخص گردیده است.

ستون username نیز کلیدگذاری شده است تا هنگام ورود امکان جستجوی سریع این ستون فراهم شود. بهتر است این ستون کلید Unique یا یکتا داشته باشد تا از ساخته شدن کاربرانی با نام یکسان جلوگیری شود.

ساخت کدهای html فرم ثبت نام

فایلی با نام signup.php ایجاد کنید و کدهای زیر را که تنها یک فرم ثبت نام است، در آن قرار دهید.

اگر فایل بالا را در مرورگر مشاهده کنید، تصویری شبیه به تصویر زیر برای شما نمایش داده می‌شود:

فرم ثبت نام

قطعه کد بالا حاوی اندکی کدهای CSS است تا شکل نمایش فرم کمی بهتر از حالت پیش‌فرض باشد.

روش اسال اطلاعات یا method

در فرم بالا روش ارسال اطلاعات به فرم با مقدار POST پر شده است. در این روش، اطلاعات ارسالی کاربر در نوار آدرس سایت قابل مشاهده نخواهند بود. انجام این کار برای فرم‌های ثبت نام و ورود به سایت ضروری است زیرا مانع از ذخیره‌سازی اطلاعات وارد شده کاربر در cache مرورگر و Log‌های سرور می‌شود. در نتیجه یک نکته‌ی امنیتی در مورد فرم‌های فوق استفاده از این روش است.

عدم تعیین action برای فرم

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

کدهای php برای فرم ثبت نام

در گام اول فرض می‌کنیم تمامی اطلاعات وارد شده توسط کاربر صحیح هستند و تنها کدهای مربوط به ثبت نام را در ابتدای فایل signup.php اضافه می‌نماییم. کدهای زیر را در ابتدای فایل فوق بیفزایید و مجددا آن را ذخیره کنید:

در قطعه کد بالا ابتدا بررسی می‌کنیم که آیا شیوه‌ی فراخوانی این فایل، با روش POST بوده است یا خیر. اگر method مساوی POST باشد به این معنی است که کاربر اطلاعات ثبت نام را پر کرده است و قصد ثبت نام در سایت را دارد.

ابتدا به پایگاه داده( roka ) متصل می‌شود. سپس یک ردیف در جدول users درج می‌کند.

نکته‌ی امنیتی مهم در کد بالا، استفاده از دستور password_hash برای رمزگزاری گذرواژه‌ی دریافتی از کاربر است. این دستور امکان مشاهده‌ی رمزهای ذخیره شده در پایگاه داده را ناممکن می‌کند و اگر به هر دلیل،‌ کسی بتواند به پایگاه داده نفوذ کند، نخواهد توانست به گذرواژه‌ی کاربران دسترسی پیدا کند.

ثبت نخستین کاربر

از نام کاربری roka و گذرواژه‌ی roka برای ثبت نام نخستین کاربر استفاده می‌کنیم و روی دکمه‌ی ثبت نام کلیک می‌نماییم. اطلاعات درج شده در جدول users به شکل زیر خواهند بود:

کاربر جدید در پایگاه داده

همان گونه که مشاهده می‌کنید، نام کاربر به صورت عادی قابل مشاهده است ولی رمز وارد شده، قابل مشاهده نیست و امنیت آن تضمین شده است.

ورود به سایت

اکنون بخش ورود به سایت را ایجاد خواهیم کرد. تکمیل فرم ثبت نام و بررسی خطاهای ممکن را در قدم بعدی انجام خواهیم داد.

ایجاد کدهای html ورود به سایت

ساخت فرم ورود را نیز همانند فرم ثبت نام به شکل زیر انجام خواهیم داد. قطعه کد زیر را در فایلی به نام signin.php ذخیره کنید:

کدهای بالا شباهت زیادی به فرم ثبت نام دارند. تنها تکرار گذرواژه از آن حذف شده است.

ایجاد کدهای php ورود به سایت

قطعه کدهای زیر را در ابتدای فایل signin.php بیفزایید:

کدهای بالا علاوه بر وظیفه‌ی ورود کاربر، امکان خروج کاربر از سیستم را نیز فراهم می‌کنند. ذخیره‌سازی وضعیت ورود کاربر با استفاده از Session به انجام می‌رسد.

کدهای بالا ابتدا بررسی می‌کنند که آیا پارامتر signout در آدرس موجود است یا خیر. اگر موجود باشد، سشن را پاکسازی می‌کند و کاربر از سیستم خارج می‌شود. شیوه‌ی فراخوانی به شکل: «signin.php?signout» خواهد بود.

در ادامه پایگاه داده برای وجود کاربری با نام مورد نظر جستجو می‌شود. سپس اگر ردیفی موجود باشد، با کمک دستور password_verify بررسی می‌شود که آیا گذرواژه‌ی وارد شده با گذرواژه‌ی رمزگزاری شده در پایگاه داده مطابقت دارد یا خیر.

در پایان متغیر signin مساوی true قرار داده می‌شود تا در ادامه برای نمایش پیام مناسب به کاربر قابل استفاده باشد.

تکمیل فرم ثبت نام

اکنون به فرم ثبت نام باز می‌گردیم و کدهای آن را به شکل زیر اصلاح می‌کنیم تا خطاهای متداول را شناسایی کنیم:

تکمیل فرم ورود به سایت

فرم ورود به سایت را نیز می‌توانیم به شکل زیر اصلاح کنیم تا امکان خروج را نیز به آن بیفزاییم و پیام‌های لازم را به کاربر نمایش دهیم:

 


مشاهده‌ی تمامی نوشته‌ها در گروه: php. ‏ فهرست برچسب‌ها: , , , , .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *