رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

پست های پیشنهاد شده

با سلام خدمت دوستان عزیز 

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

 

 نوشتن صفحه ثبت نام:

قدم اول :خب قدم اول توی نوشتن صفحه ثبت ناممون کد های html هست که

یک فایل با نام register.php بسازید و کد های زیر رو قرار بدید:

This is the hidden content, please

در اینجا چهار input داریم که شامل نام کاربری، رمز عبور ، تکرار رمز عبور و ایمیل میشه و در نهایت یک دکمه ثبت نام.

 

قدم دوم : یک فایل با نام users.php بسازید و این کد رو خط اول قرار بدید:

This is the hidden content, please

خب در فایل users.php اطلاعات کاربران اعم از username و password و email قرار میگیره 

که از تابع die اول کدمون استفاده کردیم که اگر یک نفر این فایل رو توی سایت اجرا کرد خطای 403 بگیره.

 

 

قدم سوم: 

حالا برمیگردیم به فایل register.php که کد های php اونو بزنیم یعنی:

This is the hidden content, please

خط ۲ : از if استفاده کردیم برای بررسی اینکه کاربر دکمه register رو کلیک کرده یا نه

خط ۴ : بررسی کردیم که ایا تمام ایپویت ها رو وارد کرده کاربر یا نه 

خط ۶ : بررسی کردیم که آیا رمز عبود و تکرار رمز عبور دقیقا یکی هست یا نه اگه آره که بریم سراغ اضافه کردن کاربر

خط ۱۰ : وارد فایل users.php که قبلا ساختیم میشیم و میشه file handle ما

خط ۱۳ : توی متغیر user اطلاعات کاربر رو قرار میدم یعنی نام کاربری ، رمز عبود و ایمیل که نام کاربری و رمز عبود به صورت هش شده و ایمیل به صورت encode قرار میگیره.

خط ۱۶ : با تابع fwrite در آخر فایل users.php متغیر user رو اضافه میکنیم.

خط ۱۹ : فایل users.php رو میبندیم

خط ۲۲ و ۲۳ : نمایش خطا زمانی که تمام اینپوت ها رو کاربر وارد نکرده که میشه else شرطمون (خط ۴)

 

کد نهایی:

This is the hidden content, please

 

نوشتن صفحه ورود:

 

قدم اول:

یک فایل با نام login.php بسازید و کد های html زیر رو قرار بدید:

This is the hidden content, please

(اگه دوست داشته باشید میتونید بهش استایل هم بدید ولی برای اینکه آموزش طولانی نشه ما اینکارو نمیکنیم)

 

 

قدم دوم : 

کد های php:

This is the hidden content, please

خب به صورت کلی بخوایم توضیح بدیم که چه اتفاقی افتاده میگیم که اول چک میکنه که ایا username,password ارسال شده یا نه 

بعد میاد فایل users.php رو باز میکنه با mode خواندن یا read

بعد متغیر users رو مساوی با داده های فایل users.php قرار میده

حالا میایم دوباره متغیر users رو تعریف میکنیم و با استفاده از تابع explode هر اینتری که توی فایل هست(میشه همون متغیر users) رو توی یک اندیس ارایه قرار میدم.

یک متغیر user_id هم تعریف میکنیم چون بعدا ازش میخوایم استفاده کنیم خطای undefined var نده بهمون

توی for میایم روی اندیس های آرایه users کار میکنیم و با یک if دونه دونه یوزر ها رو بررسی میکنیم با هش شده ی یوزرنیمی که برامون ارسال شده

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

This is the hidden content, please

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

خب بعد اومدیم دوباره با یک if بررسی کردیم و با تابع strstr چک کردیم که آیا پسورد (به صورت هش شده) وجود داره توی اون اندیس یا نه در واقع پسورد رو بررسی میکنیم.

و اگر درست بود میایم متغیر لاگین رو مساوی با true قرار میدیم که یعنی این شخص لاگینش انجام شده.

جلوتر میایم میگیم اگر login شده بود بیا توی این شرط

که اول میایم ایمیل رو از اون user خارج میکنیم و میزاریم توی متغیر email که روش های مختلفی میشه این کارو انجام داد ولی من از str_replace استفاده کردم 

حتی از explode هم میشه استفاده کرد و...

در نهایت session رو استارت کردیم و session ها رو ست کردیم

که من اومدم name رو مساوی با یوزر نیم و email رو مساوی با ایمیل شخص (با توجه به یوزرنیم و پسوردی که وارد کرده) به صورت دیکد قرار دادم.

و هدر کردم به پنل که شما میتونید این قسمتش رو با توجه به کاری که میخواید انجام بدید تغییر بدید.

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

 

کد نهایی پیج لاگین:

This is the hidden content, please

 

 

نکته:‌ دوستان عزیز توی پیج ریجستر یک باگ خطرناک داریم که به شکل یک چالش میتونید بهش نگاه کنید،

اگر دوستان تمایل داشتید در پایین تاپیک باگ رو ارائه بدید و همچنین نحوه پچ کردنش چون احتملا تا چند روز دیگه ادامه تاپیک نحوه بستن آسیب پذیری و نحوه استفاده از اون 

رو گداشتیم و یکم ریزه کاری پیج لاگین.

 

 

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

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...