データベース検索用のページ
昨日の罠は見つかったので削ります。
check.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>確認画面</title> <link rel="stylesheet" href="style.css" media="screen,print"> </head> <body> <?php $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $name = htmlspecialchars($name); $email = htmlspecialchars($email); $message = htmlspecialchars($message); echo'<ul>'."\n"; echo '<li>'; if($name==''){ echo 'お名前が入力されていません。<br>'."\n"; }else { echo 'ようこそ、'.$name.'様<br>'."\n"; } echo '</li>'."\n"; echo '<li>'; if($email==''){ echo 'メールアドレスが入力されていません。<br>'."\n"; }else { echo 'メールアドレス:'.$email.'<br>'."\n"; } echo '</li>'."\n"; echo '<li>'; if($message==''){ echo'お問い合わせの内容が、入力されていません。'."\n"; }else { echo 'お問い合わせの内容:'.$message."\n"; } echo '</li>'."\n"; echo '</ul>'."\n"; if($name=='' || $email=='' || $message==''){ echo'<form>'."\n"; echo'<input type="button" onClick="history.back()" value="戻る">'."\n"; echo '</form>'."\n"; } else { echo '<form action="thanks.php" method="post">'."\n"; echo '<input type="hidden" name="name" value="'.$name.'">'; echo '<input type="hidden" name="email" value="'.$email.'">'; echo '<input type="hidden" name="message" value="'.$message.'">'; /*この1行が罠だった↓ echo '<input type="bottun" onClick="history.back()" value="戻る">'."\n"; */ echo '<input type="submit" value="送信">'."\n"; echo '</form>'."\n"; } ?> </body> </html>
データベース内をリスト化。
list.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登録データ一覧</title> <link rel="stylesheet" href="style.css" media="screen,print"> </head> <body> <?php $dsn = 'mysql:dbname=contactus; host=localhost'; $user = 'root'; $password = 'root'; $dbh = new PDO($dsn,$user,$password); $dbh -> query('SET NAMES UTF8'); $sql = 'SELECT * FROM inquiry WHERE 1'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); while (1) { $rec = $stmt -> fetch(PDO::FETCH_ASSOC); if ($rec==false){ break; } echo $rec['code'].': '; echo $rec['name'].': '; echo $rec['email'].': '; echo $rec['message']; echo '<br>'; } $dbh = null; ?> </body> </html>
上記phpをHTMLで表示した結果のソース
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登録データ一覧</title> <link rel="stylesheet" href="style.css" media="screen,print"> </head> <body> 1: 山田: yamada@gmail.com: はじめまして。<br>2: 山田: yamada@aaa.com: テスト<br>3: 山田: yamada@aaa.com: テスト<br>4: テスト: hatenafight@gmail.com: テキストテスト<br>6: テスト: hatenafight@gmail.com: テキストテスト<br>11: 青島: aoshima@aaa.com: こんにちは、青島です。<br>9: サンクスページのエラー対策: xxx@aaa.com: サンクスで名前等の入力が空っぽなのは削りすぎか。<br>10: やっぱり削りすぎ: 123@www.com: いらないのは1行だけだったな。<br>12: 植木: hitoshi@crazycats.com: 青島の次ったら植木。<br></body> </html>
データベースの検索
(自動ナンバリングの数字から)
search.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>検索</title> <link rel="stylesheet" href="style.css" media="screen,print"> </head> <body> <form action="search.php" method="post" id="search"> <input type="text" name="code" size="20" id="code"> <br> <input type="submit" value="検索"> </form> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>検索画面</title> <link rel="stylesheet" href="style.css" media="screen,print"> </head> <body> <?php $code = $_POST['code']; $dsn = 'mysql:dbname=contactus; host=localhost'; $user = 'root'; $password = 'root'; $dbh = new PDO($dsn,$user,$password); $dbh -> query('SET NAMES UTF8'); $sql = 'SELECT * FROM inquiry WHERE code=?'; $stmt = $dbh -> prepare($sql); $data[] = $code; $stmt -> execute($data); while (1) { $rec = $stmt -> fetch(PDO::FETCH_ASSOC); if ($rec==false){ break; } echo $rec['code'].': '; echo $rec['name'].': '; echo $rec['email'].': '; echo $rec['message']; echo '<br>'; } $dbh = null; ?> </body> </html>
menu.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>管理メニュー</title> <link href="style.css" rel="stylesheet" media="screen, print"> </head> <body> <h3>管理メニュー</h3> <ul> <li><a href="list.php">お問い合わせ内容一覧</a></li> <li><a href="search.html">お問い合わせ内容検索</a></li> </ul> </body> </html>
このページが増えたので、
「list.php」と「search.html」に
<ul> <li><a href="menu.html">メニューに戻る</a></li> </ul>
このリンクを追加。
「search.php」には
<ul> <li><a href="search.html">検索画面に戻る</a></li> </ul>
このリンクを追加。