ساخت Flash Message ها

Flash Messages

0 80

ساخت Flash Message ها

در قسمت قبل فرم ثبت نام را تکمیل و با استفاده از آن کاربری را با رمز عبور هش شده در سیستم ثبت کردیم. اگر از جلسه ی قبل یادتان باشد پس از ثبت نام به صفحه ی login (ورود) redirect می شدیم. در این قسمت می خواهیم تابعی کمکی بسازیم که با استفاده از آن بتوانیم از Flash messages ها استفاده کنیم. Flash message ها پیام هایی هستند که معمولا یک بار و آن هم برای چند ثانیه نمایش داده می شوند (به طور مثال: ورود شما موفقیت آمیز بود و…).

بنابراین وارد پوشه ی helpers شده و یک فایل جدید به نام session_helper.php بسازید. ما برای پیاده سازی طرح خود از session ها استفاده می کنیم. به طور خلاصه session ها متغیرها و اطلاعات موقتی هستند که هنگامی که ما بخواهیم یا هنگامی که کاربر مرورگر خود را ببندد از بین می روند. برای شروع یک session و برای اینکه session ما در تمامی صفحات سایت قابل دسترسی باشد با دستور زیر شروع می کنیم:

با این دستور Session ما شروع می شود. همچنین فایل session_helper.php را در تمام برنامه بارگذاری خواهیم کرد.

حالا باید تابعی برای flash message ها بسازیم:

از آنجا که از بوت استرپ استفاده می کنیم کلاس این flash message را روی alert alert-success تنظیم کرده ایم. شما می توانید این مورد را بر اساس سلیقه ی خود تغییر دهید. طرز استفاده از این تابع به این صورت خواهد بود که تابعی به نام flash را به شکل زیر صدا بزنیم:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

(empty($message! یعنی message خالی نباشد و شرط بعدی یعنی sesssion مربوط به name خالی باشد (یعنی ساخته نشده است). ساختن session ها نیز کار آسانی است بنابراین [SESSION[$name را با message$ می سازیم. برای session مربوط به کلاس هم از ساختار زیر استفاده می کنیم:

name$ به علاوه ی رشته ی “class_”

شما می توانید بر اساس سلیقه ی خود برنامه را تغییر دهید. این راه، روشی است که ما انتخاب کرده ایم. اگر به کد نگاه کنید متوجه مشکلی می شوید؛ اگر session از قبل تعریف و ساخته شده بودند چطور؟ مثلا کاربر قبلا login شده باشد! به همین دلیل باید این مسئله را قبل از ساختن Session ها چک کنیم:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

دستور unset یک session را از شما می گیرد و آن را از بین می برد اما دستور ()session_destroy تمام Session های شما را یک جا حذف می کند. بنابراین باید مراقب این مسئله باشید.

حالا چه زمانی باید session را نمایش دهیم؟ اگر message خالی باشد اما session مربوط به name خالی نباشد باید پیام را نشان دهیم:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

توضیح کد:

برای تعیین متغیر class به این روش عمل کرده ایم:

  • اگر [‘SESSION[$name. ‘_class خالی نباشد باید داخل message برود
  • در غیر این صورت یک رشته ی خالی (“”) را برایش قرار می دهیم. در این صورت کلاس پیام همان success پیش فرض خواهد بود.

حالا باید یک div را نمایش دهیم که حاوی پیام ما باشد بنابراین:

پس از نمایش این پیام هم باید مطمئن شویم که session ها را حذف کرده ایم. چرا؟ به دلیل اینکه کاربر یک بار login یا register می شود و نباید در تمام صفحات سایت پیام «با موفقیت وارد شدید» یا چنین پیام هایی را داشته باشیم.

حالا وارد فایل bootstrap.php شوید و با استفاده از دستور require_once تابعی را که نوشتیم بارگذاری کنید:

سپس از پوشه ی controllers وارد فایل Users.php شوید. به قسمت ثبت نام کاربر و redirect شدن آن بروید (جلسه ی قبل) و کد را بدین شکل تغییر دهید:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

به کد بالا آرگومان class را ندادیم. چرا؟ به این دلیل که مقدار پیش فرض برای class همان alert alert-success است و بوت استرپ این کلاس را با رنگ سبز نمایش می دهد که متناسب با کار ما است. حواستان باشد که تا اینجای کار چیزی نمایش داده نمی شود. برای نمایش دادن پیام باید به صفحه ای برویم که کاربر به آن redirect می شود (یعنی login). بنابراین فایل login.php را از پوشه ی view>users باز کنید. سپس قبل از تگ <h2> پیام زیر را وارد کنید:

مشاهده این قسمت تنها برای افرادی که اشتراک جادویی داشته باشند، امکان‌پذیر است. با خرید اشتراک، به همه مطالب جادویی روکسوپلاس دسترسی داشته باشید.

به تابع flash آرگومان name (مقدار register_success) را داده ایم تا آن را نمایش دهد.

برای تست عملکرد برنامه به محیط PHPMyAdmin بروید و از جدول users کاربری که در جلسه ی قبل ساخته بودیم را حذف کنید. سپس با اطلاعات دلخواه یک کاربر دیگر را ثبت نام کنید تا بتوانیم کار برنامه را تست کنیم.

پس از ثبت نام باید به صفحه ی login منتقل شده و پیام you are registered and can log in برایتان نمایش داده شود.

امیدوارم از این قسمت لذت برده باشید. در قسمت بعد روی login کردن کاربران کار خواهیم کرد.

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

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.