実現したい事
現在、webサービス開発で新規アカウント作成機能を開発しているのですが、formから送ったユーザーデータがPHPで受け取れず、新規アカウント作成が実装できず困っています。
なのでこちらを改善して、アカウント作成機能を完成させたいです。
該当のソースコード
PHP
1// newac.php 2require_once "../libs/init.php"; 3 4session_start(); 5$pdo = db_connect(); 6 7if(isset($_POST['signup'])) { 8 $username = $pdo->real_escape_string($_POST['username']); 9 $email = $pdo->real_escape_string($_POST['email']); 10 $password = $pdo->real_escape_string($_POST['password']); 11 $password = password_hash($password, PASSWORD_DEFAULT); 12 13 $query = "INSERT INTO users (username, email, password) VALUES ( '$username', '$email', '$password')"; //ここで入力されたデータをデータベースに格納します。 14 if($pdo->query($query)) { ?> 15 <div class="alert alert-success" role="alert">登録が完了しました</div> 16 <?php } else { ?> 17 <div class="alert alert-danger" role="alert">エラーが発生しました</div> 18 <?php 19 } 20} 21 22$smarty = getSmarty(); 23$smarty->display('../libs/templates/newac.tpl');
Smarty
1{* newac.tpl(newac.phpのUIファイル) *} 2<form action="newac.php" style="text-align: center;"> 3<h1 class="actitle mb-3">アカウントを作成</h1> 4<div> 5 <label>お名前</label><br> 6 <input type="text" name="username"> 7</div><br> 8 9<div> 10 <label>メールアドレス</label><br> 11 <input type="email" name="email"> 12</div><br> 13 14<div> 15 <label>パスワード</label><br> 16 <input type="password" name="password"> 17</div><br> 18 19<input type="submit" class="accbtn" name="signup" value="アカウントを作成する"> 20</form> 21 22<div class="lglink mt-5"> 23<p>既にアカウントをお持ちの場合はこちらから</p> 24<a href="login.php">ログインする</a> 25</div> 26 27<footer> 28 29</footer>
試した事
-
INSERT INTO users (username, email, password) VALUES ( '$username', '$email', '$password')
このSQL文のusername, email, passwordのスペルミス確認 -
newac.phpのformタグのactionの送り先ファイルが間違っていないかチェック
上手くいかない原因の仮説
newac.phpで$_POSTで受け取っているので、htmlと乖離が発生し、データが受け取れないかも?
以上です。
わかる方がいらしたらご回答よろしくお願いします!
また、ご回答いただいても返信は明日になりますのでご了承ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/14 23:05