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 ?>