MR.MSA ارسال شده در مارچ 10 2021 گزارش اشتراک گذاری ارسال شده در مارچ 10 2021 با سلام خدمت دوستان عزیز امروز میخوایم باهم یک صفحه ورود بدون داشتن دیتابیس بسازیم که در کنارش صفحه ثبت نام هم موجوده و کاربران میتونن ثبت نام کنن. نوشتن صفحه ثبت نام: قدم اول :خب قدم اول توی نوشتن صفحه ثبت ناممون کد های 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 ورود یا ثبت نام نکته: دوستان عزیز توی پیج ریجستر یک باگ خطرناک داریم که به شکل یک چالش میتونید بهش نگاه کنید، اگر دوستان تمایل داشتید در پایین تاپیک باگ رو ارائه بدید و همچنین نحوه پچ کردنش چون احتملا تا چند روز دیگه ادامه تاپیک نحوه بستن آسیب پذیری و نحوه استفاده از اون رو گداشتیم و یکم ریزه کاری پیج لاگین. موفق و پیروز باشید. واکنش ها : pro_lion، johnjones، C0d3!Nj3ct!0n و 8 نفر دیگر 9 2 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر گزینه های به اشتراک گذاری بیشتر...
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .