LoginSignup
0
1

More than 3 years have passed since last update.

【PHP】フラッシュメッセージの実装

Posted at

PHPについて学習内容を備忘録としてまとめます。
今回はフラッシュメッセージをポートフォリオに実装したので、実装方法を記録します。

フラッシュメッセージ実装

全体の流れとしては空のフォームがあった場合に該当のエラーメッセージを格納し、
ログイン画面でエラーメッセージを表示するという流れになっております。

まずフォームが空かを確認し処理を行います。
これで該当のフォームが空のとき、エラーメッセージに値を格納することができます。


//login_check.php(ログイン過程のファイルです)

if(empty($staff_code)){
    $error_messages['code'] = "コードを入力してください";
  }

if(empty($staff_pass)) {
    $error_messages['pass'] = "パスワードを入力してください";
  }

余談にはなりますが、md5などで値をハッシュ化するとフォームは空でも値が入ってしまいemptyで処理できなくなります。


//$staff_passは空

$staff_pass=md5($staff_pass);

//$staff_passに値が入る

if(empty($staff_pass)) {
    $error_messages['pass'] = "パスワードを入力してください";
  }

//上記処理が実行されない

error_masseagesに値が格納されましたら、今度はセッションに値を格納します。
このときにフラッシュメッセージの種類によって色などを変更したい際は$flash_typeも定義します。


//login_check.php

if( isset($_SESSION['flash']) ){
    $flash_messages = $_SESSION['flash']['message'];
    $flash_type = $_SESSION['flash']['type'];
  }
  unset($_SESSION['flash']);

最後にログイン画面にてフラッシュメッセージを表示させます。


//login_form.php

    <?php if (isset($flash_messages)): ?>
      <?php foreach ((array)$flash_messages as $message): ?>
        <p class ="flash_message <?= $flash_type ?>"><?= $message?></p>
      <?php endforeach ?>
    <?php endif ?>

実装画面

image.png

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1