جلسه دوم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
جلسه دوم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
در ابتدا صفحه admin.php رو تکمیل می کنیم و اون رو به صفحه پنل کاربری متصل می نماییم .
پس یک صفحه به نام panel.html جهت دیزاین صفحه پنل کاربری می سازیم ؛ قبل از ساخت این صفحه باید ورود کاربر رو به وسیله سشن ثبت کنیم و اونو رمزنگاری کنیم تا در مراحل بعدی برای بررسی ورود ادمین از این سشن استفاده کنیم.
دقت کنید این یک تمرینه که سشن رو رمزنگاری می کنیم و در ابعاد پروژه های بزرگتر مهم میشه مثلا جایی لازم دارید تا اطلاعات حساس از کاربر رو در هر لحظه داشته باشید پس باید اونو توی سشن ذخیره کنید و از طرفی باید رمزنگاری کنید چون به هیچ وجه نباید مستقیم خود داده ها رو ذخیره کرد و استفاده کرد.
برای این که بتونیم از متغیر سشن استفاده کنیم اول از همه باید اونو start کنیم ؛ در غیر اینصورت خطا میده که سشن شناخته شده نیست.
session_start(); با این دستور سشن استارت می کنیم و اول کد این خط رو باید وارد کنیم .
متغیر سشن هم مثل متغیر post , get باید اول چک بشه که ساخته شده یا خیر
برای بررسی این که کاربر وارد سایت شده بوده یا نه باید اول چک کنیم که سشن کاربری ساخته شده باشد و بعد مقدار سشن کاربری رو چک کنیم .
توی کد های زیر یک سشن به نام login ایجاد می کنیم :
ت1
فایل های این کدا رو براتون می فرستم ؛ اما توضیح این کد :
اول از همه توی صفحه چک می کنیم که کاربر قبلا لاگین کرده بوده یا خیر ؛ و به وسیله سشن بررسی می کنیم اول سشن رو شروع کردیم و بعد بررسی می کنیم ببینیم که برابر مقدار کدگذاری شده است یا خیر ( کدگذاری رو توضیح میدم) در نهایت اگر درست بود یعنی کاربر لاگین است و panel.html رو اینکلود می کنیم در غیر اینصورت دوباره صفحه ورود را نمایش می دهیم .
این مثل اینه که کاربر از صفحه کاربری بیرون اومده و صفحه ای که دوباره میبینه همون صفحه لاگینه
حالت بعدی اینه که کاربر لاگین نباشه در این حالت هم باید چک کنیم ببینیم که آیا فرم فرستاده شده یا نه که توی جلسه پیش گفتم با isset چک می کنیم اگر فرم ارسال شده بود که چک می کنیم که درست است یا خیر اگر درست بود :
مقدار سشن login یا همون $_SESSION[‘login’] رو برابر مقدار رمزنگاری شده یوزنیم که کاربر باید وارد می کرده قرار میدیم .
در مورد کدگذاری :
باید بگم که تابع md5 در php به صورت یکطرفه مقادیر string رو کدگذاری می کنه به این معنی که از مقدار کدگذاری شده نمیشه به اصل string رسید ما با این کار در حین اینکه رد string اصلی رو گم می کنیم میتوانیم در بررسی های بعدی از آن استفاده کنیم.
اگر هم درست نبود دوباره صفحه لاگین رو نمایش میدیم .
در مراحل بالا هر حالتی که کاربر داشته باشه اونو بررسی می کنه و متناسب با اون رفتار مناسب نشون میده که همین یک ساختار اصولمند برای ساخت تمام صفحات در وب است .
حالا صفحه نمایش پنل کاربری رو می سازیم ؛ panel.html ؛ برای اینکه پنل کاربری ساده و جمع و جور باشه میتونید از یک iframe استفاده کنید و از یک تعداد لینک که با کلیک روی این لینک ها فایل php یا نمایشی مربوط به اون در iframe در همون صفحه لود میشه به این شکل دیگه پنل کاربری هر بار که کاربر روی پست جدید یا تغییرات پست یا گالری و ... کلیک می کند نیاز نیست تا پنل توی مرورگر رفرش بشه .
محتویات panel.html :
این فایل هم براتون میفرستم .
قبل از اینکه شروع کنیم بخش های مختلف رو بسازیم باید حالتی رو مدنظر بگیریم که کاربر بتواند خارج شود برای این کار به فایل panel.html خط زیر رو استفاده می کنیم و از آن جایی که بعد از خروج باید به صفحه لاگین برود target اونو خالی بذارید .
<a href="/admin.php?exit=exit" target="">خروج از پنل کاربری</a>
همونطور که میبینید متغیری توی آدرس برای اینکه بفهمیم میخواهد خارج شود ارسال می کنیم ؛ به این متغیر ها get می گفتیم پس توی صفحه admin.php بعد از کلیک کردن روی این لینک متغیر $_GET[‘exit’] ساخته می شود و مهم نیست مقدار این متغیر رو چی بذارید چون همین که ایجاد شده باشد ما متوجه خروج کاربر می شویم .
حالا باید توی صفحه admin.php هم حالت دیگه ای مد نظر بگیریم که خروج کاربر هم بررسی کند .
توی فایل admin.php این تغییرات را ایجاد می کنیم :
توضیح :
اول از همه یک نکته مهم جهت جلوگیری از نمایش خطای ناخواسته :
نکته : وقتی به یک فایل بیشتر از چند بار ارجاع می شود مثل همین admin.php برای جلوگیری از خطا چندبار استارت سشن باید از شرط !isset($_SESSION) استفاده کنیم در این شرط به طور کلی بررسی می کنه که سشنی ایجاد شده یا خیرکه علامت ! یعنی ایجاد نشده باشه که در این حالت لازمه سشن رو استارت کنیم و در غیر اینصورت یعنی قبلا استارت کردیم و نیاز به استارت نیست .
در ادامه میدونیم که اگر سشن لاگین ست شده باشد کاربر اجازه دارد تا خروج کند پس داخل شرطی که سشن login را بررسی می کند بررسی می کنیم که آیا $_GET[‘exit’] ایجاد شده یا خیر و اگر ایجاد شده بود سشن لاگین را حذف می کنیم و دوباره صفحه لاگین را نشان می دهیم .
با تابع unset میشه سشن مربوطه را حذف کرد توابع دیگری هم وجود دارد ولی این بهترین تابع است .
نکته بسیار مهم در مورد exit ؛
دستور exit; اجرای باقی دستورات در صفحه را نادیده می گیرد درست عملکردی مثل return در توابع دارد که وقتی تابع به return دست پیدا کند دیگر فعالیت تابع ادامه پیدا نمی کند .
پس ما برای اینکه بعد از خروج دو بار صفحه نمایش را نشان ندهد و سراغ if بعدی نرود باید exit را بنویسیم و در جاهای دیگه هم باید بررسی کنید اگر حتما لازمه استفاده کنید درغیر اینصورت بود و نبودش فرقی نداره
- توضیحات
- بازدید: 747
نظرات
- هیچ نظری یافت نشد.
نظر خود را اضافه نمایید
ارسال نظر به عنوان مهمان