php初心者のものです。
IT企業に転職を考えていて自分で勉強しているところです。
phpを使って予約サイトを作り、history.phpで自分の予約情報を確認できるページを作ろうと思っていて、ネットから情報を持ってきて自分なりに作ったのですがうまくページが作れません。
拙いコードではありますがどなたかお助けいただけないでしょうか?
予約登録のコードは以下の通りです。
データベース名はtextです。
カラム名はcontactです。
login.phpからデータベース(text)につないで、氏名とパスワードでログインしてhistory.phpで
情報を確認したいです。
contact.php → confirm.php → complete.php
↓
login.php → history.php
contact.php
<?php $mysqli = new mysqli("localhost","root","root","text"); if($mysqli->connect_error){ echo "データベース接続に失敗しました"; exit(); } echo "データベースに接続できました"; $result = $mysqli->query("SELECT * FROM contacts"); $mysqli->close(); ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/contact.css"> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <div id="all_content"> <div id="menu"> <ul> <li><a href="home.php">ホーム</a></li> <li><a href="access.php">アクセス</a></li> <li><a href="contact.php">予約</a></li> <li><a href="login.php">予約履歴</a></li> </ul> </div> <div id="contact"> <form action="confirm.php" method="post"><!--ブックマークつける場合はget--> <p>氏名* <input type="text" name="username" style="width:500px;"></p> <p>電話番号* <input type="text" name="password" style="width:500px;"></p> <p>メールアドレス* <input type="text" name="mail" style="width:500px;"> <div id="submit"> <input type="submit" value="送 信" style="margin-left: 800px;"> </div> </form> </div> </div> </body> </html> コード
confirm.php
<html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/confirm.css"> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <div id=main> <img src="img/login3.jpg" alt="ログイン画面の写真"> </div> <?php // フォームのボタンが押されたら if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; $mail = $_POST["mail"]; } ?> <div id="form_area"> <form action="conplete.php" method="post"> <input type="hidden" name="username" value="<?php echo $username; ?>"> <input type="hidden" name="password" value="<?php echo $password; ?>"> <input type="hidden" name="mail" value="<?php echo $mail; ?>"> <p>予約内容はこちらで宜しいでしょうか?<br>よろしければ「送信する」タンを押して下さい。</p> <?php if($_POST) { echo "氏名 ".$_POST["username"]."<br>"; echo "電話番号 ".$_POST["password"]."<br>"; echo "メールアドレス ".$_POST["mail"]."<br>"; } ?> <input type="submit" value="送 信"> </div> </body> </html> コード
complete.php
if($_POST) { $username = $_POST["username"]; $password= $_POST["password"]; $mail = $_POST["mail"]; $mysqli = new mysqli("localhost","root","root","text"); if($mysqli->connect_error){ echo "データベース接続に失敗しました"; exit(); } $result = $mysqli->query("INSERT INTO contacts VALUES(NULL, '$username','$password', '$mail', now())"); if($result == 0) { echo "登録失敗しました。"; } else { echo "登録しました。"; } $mysqli->close(); } ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/conplete.css"> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <div id=main> <img src="img/login3.jpg" alt="ログイン画面の写真"> </div> <div id="conplete"> <p>ご予約完了しました。</p> </div> <div id="back"> <form action="contact.php" method="post"> <input type="submit" value="戻 る"> </div> </body> </html> コード
これからが予約確認のページです。
login.php
if($_POST) { $username = $_POST["username"]; $password = $_POST["password "]; } $mysqli = new mysqli("localhost","root","root","text"); //UPDATE文を変数に格納 if($mysqli->connect_error){ echo "データベース接続に失敗しました"; exit(); } echo "データベースに接続できました"; // エラーを格納する変数 $err = []; if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') === 'POST') { $username = filter_input(INPUT_POST, 'username'); $tel = filter_input(INPUT_POST, 'tel'); if ($username === '') { $err['username'] = 'ユーザー名は入力必須です。'; } if ($password === '') { $err['password '] = 'パスワードは入力必須です。'; } // エラーがないとき if (count($err) === 0) { // DB接続 $pdo = connect(); // ステートメント $stmt = $pdo->prepare('SELECT * FROM contacts WHERE username = ?'); // パラメータ設定 $params = []; $params[] = $username; // SQL実行 $stmt->execute($params); // レコードセットを取得 $rows = $stmt->fetchAll(); // パスワード検証 foreach ($rows as $row) { $password _hash = $row['password ']; // パスワード一致 if (password_verify($tel, $tel_hash)) { session_regenerate_id(true); $_SESSION['login'] = $row; return; } } $err['login'] = 'ログインに失敗しました。'; } } ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/login.css"> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <div id="all_content"> <h1>氏名、パスワードを入力してください。</h1> <form action="history.php" method="post"> <table> <tr> <th>氏名</th> <td><input type="text" style="width:500px;"></td> </tr> <tr> <th>パスワード</th> <td><input type="text" name="password" style="width:500px;"></td> </tr> </table> <p><input type="submit" value="ログイン"></p> </form> </div> </body> </html> コード
history.php
<?php $mysqli = new mysqli("localhost","root","root","text"); if($mysqli->connect_error){ echo "データベース接続に失敗しました"; exit(); } echo "データベースに接続できました"; $result = $mysqli->query("SELECT * FROM contacts"); $mysqli->close(); ?> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="css/history.css"> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <div id="section"> <h2>送信データ一覧</h2> <table> <tr> <th>ID</th> <th>氏名</th> <th>パスワード</th> <th>メール</th> </tr> <?php while($row = $result->fetch_assoc()) : ?> <tr> <td><?php echo $row["id"]; ?></td> <td><?php echo $row["username"]; ?></td> <td><?php echo $row["password"]; ?></td> <td><?php echo $row["mail"]; ?></td> </tr> <?php endwhile; ?> </table> <form action="home.php" method="POST"> <input type="submit" value="ホーム画面に戻る"> </form> </div> </body> </html> コード
何度もしつこいですが拙いコードで申し訳ありません。
どうかお助けください。