باسلام
دوتا سوال داشتم.. سوال اولی:
در این کدهایی که هایلایت کردم، گفتیم اگر ولیدیشنهای بالا اکی بود، بیا کاربر رو ثبت کن توی دیتابیس و همونجا هم گفتیم که اگر کاربر اطلاعاتش توی دیتابیس ثبت شد، بیا همون ایمیلشو بگیر و بریز توی سشن و مارو ببر به صفحهی وریفای...
بعد پایینش گفتیم در صورتی که اکشن وریفای وجود داشت و سشن ایمیل هم بود، خب حالا چک کن ببین ایمیلی که توی سشن هست، توی دیتابیس وجود داره یا نه؟؟؟ اگه نداشت، ارور بده.
.سوال من اینجاست که ما خودمون ایمیل رو از قبل ولیدیشن کردیم و میدونیم چیزی که در خط ۳۳ توی سشن ریختیم،یک ایمیل وریفای شدهست و حتما هم وجود داره.
یعنی مطمعنیم اگرتوی صفحه وریفای سشنی باشه، که هست، دیتای ایمیل کاربر هم توش هست، و ایمیله هم صحیحه. پس چرا دوباره میایم توی خط ۴۵ بااز هم چک میکنیم که آیا ایمیلی که توی سشنه، توی دیتابیس هستش یا نه؟؟؟
سوال دوم:
در تصویر زیر، خط ۳۲ گفتیم اگر توی سشن از قبل هشی وجود نداشت، یا تابع isAliveToken فالس برگردونده بود، برو خط ۳۵ و یه توکن بساز و مقدار (هش) اون توکن رو بریز داخل سشن هش.
حالا که سشن هش اکی شد، کد برمیگرده به خط ۳۲ و اینبار، بخش اول کد که isset(session['hash']) هست، true میشه. وقتی این true بشه، سشن توی شرط بعد از and قرار میگیره و وارد تابع isAliveToken میشه.
وقتی سشن میاد اینجا، میرسه به خط ۴۳ و وارد تابع findTokenByHash میشه. اونجا به هرحال داده هارو برمیگردونه و مجدد میاد وارد تابع isAliveToken میشه. من ادامشو نمیفهمم. خب میگه اگر دادهای وجود نداشت، ریترن کن فالس بعد خط بعدش (۴۶) چی میگه؟؟؟