PHPにて入力チェックの開発を行っているのですが、
上記画面にて項目を未入力状態で、アカウント作成ボタンを押すと
ニックネームの入力欄の下にエラーメッセージが表示されるはずなのですが
何も表示されずに元の入力画面の状態にもどってしまいます。
よく原因が分からず、ソースなども確認してみたのですが
何度動作を行ってもエラーメッセージが表示されず困っております。
動作実行時のソースは以下になります。
<?php require_once('config.php'); if ($_SERVER['REQUEST_METHOD'] != 'POST') { // 初めて画面にアクセスした時の処理 } else { // フォームからサブミットされた時の処理 // 処理1 // 入力されたニックネーム、メールアドレス、パスワードを受け取り、変数に入れる。 $user_screen_name = $_POST['user_screen_name']; $user_password = $_POST['user_password']; $user_email = $_POST['user_email']; // 処理2 // データベースに接続する(PDOを使う) $host = "localhost"; $user = "root"; $pass = "********"; $db = "*********"; $param = "mysql:dbname=".$db.";host=".$host; $pdo = new PDO($param, $user, $pass); $pdo->query('SET NAMES utf8;'); //入力チェックを行う。 $err = array(); //[ニックネーム]未入力チェック if($user_screen_name == ''){ $err['user_screen_name'] = 'ニックネームを入力して下さい。'; } //もし$err配列に何もエラーがメッセージが保存されていなかったら if(empty($err)){ // 処理3 // データベース(userテーブル)に新規登録する。 $sql = "insert into user (user_screen_name, user_password, user_email, delivery_hour, created_at, updated_at) values (:user_screen_name, :user_password, :user_email, 99, now(), now())"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':user_screen_name', $user_screen_name); $stmt->bindValue(':user_password', $user_password); $stmt->bindValue(':user_email', $user_email); $flag = $stmt->execute(); unset($pdo); // 処理4 // signup_complete.phpに画面遷移する。 header('Location: '.SITE_URL.'signup_complete.php'); exit; } unset($pdo); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>ユーザー登録 | <?php echo SERVICE_NAME; ?> </title> <meta name="description" content="自分だけの格言をいつも忘れないために。格言リマインダー「マイカクゲン」" /> <meta name="keywords" content="マイカクゲン,格言,リマインダー" /> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.min.js"></script> <link href="css/mykakugen.css" rel="stylesheet"> </head> <body id="main"> <div class="nav navbar-inverse navbar-fixed-top"></body> </html><div class="navbar-inner"> <div class="container"> <a class="navbar-brand" href="<?php echo SITE_URL; ?>"><?php echo SERVICE_SHORT_NAME; ?> </a> </div> </div> </div> <div class="container"> <h1>ユーザー登録</h1> <form method="POST" class="panel panel-default panel-body"> <div class="form-group"> <input class="form-control" type="text" name="user_screen_name" value="" placeholder="ニックネーム" /><span class="help-block"><?php echo $err['user_screen_name']; ?> </span> </div> <br /> <div class="form-group"> <label>パスワード</label> <input type="password" class="form-control" name="user_password" value="" placeholder="パスワード" /> </div> <br /> <div class="form-group"> <label>メールアドレス</label> <input type="text" class="form-control" name="user_email" value="" placeholder="メールアドレス" /> </div> <br /> <div class="form-group"> <input type="submit" value="アカウントを作成" class="btn btn-success btn-block"> </div> </form> <hr> <footer class="footer"> <p> <?php echo COPYRIGHT; ?> </p> </footer> </div> <!--/.container-->
お力添え頂ければ幸いです。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。