前提・実現したいこと
・PHPでログインボタンを押した時に、未入力であれば同じ画面でエラーメッセージを表示させたい。
発生している問題・エラーメッセージ
発生している問題点:フォーム未入力でも画面遷移が出来てしまう
該当のソースコード
PHP
MVCモデルで作成しています。
VIEW 【login.php】 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ログイン画面</title> </head> <body> <form method="post" action="../controller/LoginCheckController.php"> ID:<input type="text" name="login_id"><br> パスワード:<input type="password" name="pass"><br> <input type="submit" value="ログイン"> </form><br> <form method="post" action="../controller/InsertController.php"> <input type="submit" value="新規登録"> </form> </body> </html>
CONTROLLER 【LoginCheckController.php】 <?php session_start(); require_once("../model/db.php"); $account = db_select($_POST["login_id"], $_POST["pass"]); $_SESSION["id"]=$account[0][0]; $_SESSION["pass"]=$account[0][1]; $_SESSION["name"]=$account[0][2]; if($account) { // ログイン成功 $msg = $account[0]["user_name"]."さんがログイン中"; } else { // ログイン失敗 $msg = "IDまたはパスワードが違います。"; } require_once("../view/login_check.php"); ?>
VIEW 【login_check.php】 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>TOPページ</title> </head> <body> <?php print($msg); ?><br> <form method="post" action="../controller/MypageController.php"> <input type="submit" value="マイページ"> </form> </body> </html>
>「同じ画面」とはどこのことでしょうか?
login.phpでエラーメッセージを出したいということです。
> コントローラを直接呼び出すってどういう仕様のフレームワークなんでしょうか。
フレームワークは使っておりません。
では完全独自の仕組みなわけですよね。
「コントローラー」とあったので既存でも独自でも何かしらのフレームワークを作られているのかと思いました。
ただ、独自のものとしたら、その作りをきちんと提示されないからには的確なアドバイスは得られないと思います。その仕組みにあったアドバイスにならないからです。
もちろん、汎用的なアドバイスで自身で吸収して理解して適用できる技術力があるのでしたらこの限りではありません。