現在、会員登録機能を実装しようとしています。
登録完了を意味する<send>を押すと同時にデータベースに書き込める仕組みにしたいのですが、
上手く行きません。改善点をお教えいただければと思います。
ぜひ皆様のお知恵をお貸し頂きたく存じます。
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset ="utf-8"> 5 <title>お問い合わせフォーム</title> 6 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> 7 <link rel="stylesheet" href="TomoTomo.css"> 8 9</head> 10<body > 11<?php if($mode == "input"){ ?> 12 **<!--フォーム入力画面-->** 13 <form action ="form.php" method="post" class="CenterFrame"> 14 15 <dt><label for="username">お名前(必須)</label></dt> 16 <dd><input type="text" name="username" id="username" value="<?php echo $_SESSION['username'] ?>" class="form-control"> 17 </dd> 18 19 <dt>年齢</dt> 20 <select name="age" class="form-select"> 21<option value="">年齢を選択してください</option> 22<option value="1">1</option> 23</select>歳 24 25 <dt><label for="job">職業(必須)</label></dt> 26 <dd><input type="text" name="job" id="job" value="<?php echo $_SESSION['job'] ?>" class="form-control"> 27 </dd> 28 29 30 <dt><label for="email">メールアドレス</label></dt> 31 <dd><input type="email" name="email" id="email" value="<?php echo $_SESSION['email'] ?>" class="form-control"></dd> 32 33 <dt><label for="password">パスワード(設定)</label></dt> 34 <input type="password"name="password" size="10" minlength="8" maxlength="12" value="<?php echo $_SESSION['password'] ?>" class="form-control"> 35<p>(本サービスの規約を読んでください)</p> 36<div class="kousin"> 37<p><input type="submit" name="confirm" value="確認" class="btn btn-primary btn-lg"></p> 38</form> 39 40<!--確認画面--> 41<?php }elseif ($mode == "confirm"){ ?> 42<form action ="form.php" method="post"> 43<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"> 44 名前 <?php echo $_SESSION["username"] ?><br> 45 年齢<?php echo $_SESSION["age"]?><br> 46 職業<?php echo $_SESSION["job"]?><br> 47 メールアドレス<?php echo $_SESSION["email"]?><br> 48 パスワード<?php echo $_SESSION["password"]?><br> 49 50<input type="submit" name="back" value="戻る" class="btn btn-primary btn-lg" /> 51<input type="submit" name="send" value="送信" class="btn btn-primary btn-lg"/> 52</form> 53
PHP
1<?php 2session_start(); 3if(isset($_POST["send"])){ 4 5 6$dbs ="mysql:host=mysql.sakura.ne.jp;dbname=***;charset=utf8"; 7$user="****"; 8$pass="****"; 9 10try{ 11 $db= new PDO($dbs,$user,$pass); 12 $sql ="insert into tomoko(user_email,user_password) values(?,?)"; 13 $stmt = $db->prepare($sql); 14 $stmt->execute(array($_SESSION["email"],$_SESSION["password"])); 15 $stmt=null; 16 $db=null; 17 18 header('location:index.html'); 19 exit; 20 21 }catch(PDOException $e){ 22 echo $e->getMessage(); 23 exit; 24 } 25 } 26 27?>
フォーム入力の記述とそれを受け取り最終的に入力内容を確定させる確認画面の記述とPDOの記述を掲載させて頂きました。
ぜひご教示頂ければ幸いです。
よろしくお願いいたします。