新規登録画面を作成中です(入力内容をデータベースに保存)
フォームで受け取ったデータを作成済みのテーブルに登録したいのですが、
うまくいきません。
調べてるうちにどんどんわからなくなって質問させていただきました。
どこがおかしくて、データが登録されないのか指摘していただけると幸いです。
【環境】
PC:mac
xampp
ecripse
mysql(local)
【質問】
作成した入力フォーム(ニックネーム、パスワード、メールアドレス)
へ入力されたデータを phpmyadmin 上に作成したテーブル(user)に
登録したいのですが、データがphpmyadminに登録されません。
行いたい処理は以下の通りです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
処理1
入力されたニックネーム、メールアドレス、パスワードを受け取り、変数に入れる。
処理2
データベースに接続する(PDOを使う)
処理3
データベース(userテーブル)に新規登録する。
処理4
signup_complete.phpに画面遷移する。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
フォームに入力された内容が、phpmyadmin上で確認できれば
良いのですが、どの処理の段階で失敗しているのか・・・
INSERT文のどこかに問題があるのか
変数の定義の仕方が間違っているのか
原因がつかめずにいます。
記述しましたコードを貼りますので
原因と考えられるところを教えていただけないでしょうか?
※ブラウザ上でフォームに入力してから、signup_complete.phpに画面遷移するまでエラーは出ません。しかし、phpmyadminのテーブルには反映されないということです。
ここから以下、自分の記述したコードです。↓
===================================
PHP
1<?php 2require_once('config.php'); 3 4if ($_SERVER['REQUEST_METHOD'] !='POST') { 5 // 初めて画面にアクセスした時の処理 6}else{ 7 // フォームからサブミットされた時の処理 8 9 //処理1 10 //入力された値を変数に代入する 11 12 if(isset($_POST['user_screen_name'])){ 13 $user_screen_name = $_POST['user_screen_name']; 14 } 15 if(isset($_POST['user_password'])){ 16 $user_password = $_POST['user_password']; 17 } 18 if(isset($_POST['user_email'])){ 19 $user_email = $_POST['user_email']; 20 } 21 22 //処理2 23 //データベースにPDOで接続 24 //以下4行はdbへの接続するための情報 25 $host = "localhost"; //データベース サーバー 26 $user = "****"; //テーダベースユーザー名 27 $pass = "*****"; //接続パスワード 28 $db = "mykakugen"; //データベース名 29 30 $param = "mysql:dbname=".$db.";host=".$host; 31 32 //あらかじめ定義したユーザー名や、パスワードを使ってPDOでdbに接続 33 $pdo = new PDO($param,$user,$pass); 34 35 //データベースにアクセスする文字コードをutf8に設定 36 $pdo->query('SET NAMES utf8;'); 37 38 //処理3 39 //db(user)に登録する 40 //$stmt = ステートメントの略。dbに対する1つの要求、処理の単位 41 $stmt = $pdo->prepare("INSERT INTO user ( 42 user_screen_name, 43 user_password, 44 user_email, 45 created_at, 46 )VALUES( 47 :user_screen_name, 48 :user_password, 49 :user_email, 50 :now(), 51 )"); 52 53 //ex:)$stmt->bindValue(':id', $_GET["id"], PDO::PARAM_INT); 54 $stmt->bindValue(':user_screen_name',$_POST["user_screen_name"],PDO::PARAM_STR); 55 $stmt->bindValue(':user_password',$_POST["user_password"],PDO::PARAM_STR); 56 $stmt->bindValue(':user_email',$_POST["user_email"],PDO::PARAM_STR); 57 $stmt->bindValue(':created_at',$_POST["created_at"],PDO::PARAM_STR); 58 59 $flag = $stmt->execute(); 60 61 unset($pdo); 62 63 //処理4 64 //signup_complete.phpに移動する 65 66 header("Location: signup_complete.php"); 67 68 exit; 69 70 71} 72?> 73<!DOCTYPE html> 74<html lang=ja> 75 <head> 76 <meta charset="utf-8"> 77 <title>ユーザー登録 | <?php echo SERVICE_NAME; ?></title> 78 <meta name="description" content="自分だけの格言をいつも忘れないために。格言リマインダー「マイカクゲン」"/> 79 <meta name="kyeword" content="マイカクゲン,格言,リマインダー"/> 80 <link href="css/bootstrap.min.css" rel="stylesheet"> 81 <script src="js/bootstrap.min.js"></script> 82 <link href="css/mykakugen.css" rel="stylesheet"> 83 </head> 84 <body id="main"> 85 86 <div class="nav navbar-inverse navbar-fixed-top"> 87 <div class="navbar-inner"> 88 <div class="container"> 89 <a class="navbar-brand" href="<?php echo SITE_URL; ?>"><?php echo SERVICE_SHORT_NAME; ?></a> 90 <ul class="nav navbar-nav"> 91 <li class="active"><a href="./signup.php">格言登録</a></li> 92 <li><a href="./item_list.php">格言リスト</a></li> 93 <li><a href="./setting.php">設定</a></li> 94 <li><a href="./login.php">ログアウト</a></li> 95 </ul> 96 </div> 97 </div> 98 </div> 99 100 <div class="cotainer"> 101 102 <h1>ユーザー登録</h1> 103 104 <form method="POST" class="panel panel-default panel-body"> 105 <div class="form-group"> 106 <!--<label>ニックネーム</label>--> 107 <input type="text" class="form-control" name="user_screen_name" value=""placeholder="ニックネーム"/> 108 </div> 109 <br/> 110 111 <div class="form-group"> 112 <!--<label>パスワード</label>--> 113 <input type="password" class="form-control" name="user_password" value="" placeholder="パスワード"/> 114 </div> 115 <br/> 116 117 <div class="form-group"> 118 <!--<label >メールアドレス</label>--> 119 <input type="text" class="form-control" name="user_email" value="" placeholder="メールアドレス"/> 120 </div> 121 <br/> 122 123 <div class="form-group"> 124 <input type="submit" class="btn btn-success btn-block" value="アカウントを作成"/> 125 </div> 126 </form> 127 128 <hr> 129 <footer class="footer"> 130 <p><?php echo COPYRIGHT; ?></p> 131 </footer> 132 133 </div><!-- container --> 134 </body> 135</html>
===================================
回答の程、宜しくお願いいたします。