お問い合わせフォームをデータベースと連携
input.php
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>お問い合わせ入力フォーム</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <div id="confirmation"> <form action="check.php" method="POST" id="inquiry"> <table> <tr> <th><label for="name">お名前</label></th> <td><input type="text" name="name" size="20" id="name" class="text1"></td> </tr> <tr> <th><label for="email">メールアドレス</label></th> <td><input type="text" name="email" size="50" id="email" class="text2"></td> </tr> <tr> <th><label for="message">ご意見</label></th> <td><textarea name="message" cols="50" rows="5" class="text3" id="message"></textarea></td> </tr> </table> <input type="submit" value="確認画面へ"> </form> </div> </body> </html>
chech.php
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>確認画面</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body> <?php $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; print '<ul>'."\n"; print '<li>'; if($name==''){ print'お名前が入力されていません。'; }else{ print'ようこそ、'.$name.'様'; } print'</li>'."\n"; print '<li>'; if($email==''){ print'メールアドレスが入力されていません。'; }else{ print'メールアドレス'.$email; } print'</li>'."\n"; print '<li>'; if($message==''){ print'お問い合わせ内容が入力されていません。'; }else{ print'お問い合わせ内容'.$message; } print'</li>'."\n"; print '</ul>'."\n"; if($name=='' || $email=='' || $message=='') { print'<form>'."\n"; print'<input type="button" onClick="history.back()" value="戻る">'."\n";; print'</form>'."\n"; }else{ print '<form action="thanks.php" method="post">'."\n"; print '<input type="hidden" name="name" value="'.$name.'">'; print '<input type="hidden" name="email" value="'.$email.'">'; print '<input type="hidden" name="message" value="'.$message.'">'; print '<input type="button" onClick="history.back()" value="戻る">'."\n"; print '<input type="submit" value="送信">'."\n"; print '</form>'."\n"; } ?> </body> </html>
thanks.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>確認画面</title> <link href="style.css" rel="stylesheet" media="screen, print"> </head> <body> <?php $dsn = 'mysql:dbname=データベース名;host=データベースホスト名'; $user = 'ユーザー名'; $password = 'パスワード'; $dbh = new PDO($dsn, $user, $password); $dbh -> query('SET NAMES UTF8'); $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $name = htmlspecialchars($name); $email = htmlspecialchars($email); $message = htmlspecialchars($message); print $name.'様<br>'."\n"; print 'お問い合わせ、ありがとうございました。<br>'."\n"; print 'お問い合わせ内容『'.$message.'』を<br>'."\n"; print $email.'にメールで送りましたのでご確認ください。'."\n"; $mail_sub = 'お問い合わせを受け付けました。'; $mail_body = $name."様、ご協力ありがとうございました。"; $mail_body = html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); $mail_head = 'From:xxx@gmail.com'; mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($email,$mail_sub,$mail_body,$mail_head); $sql = 'INSERT INTO inquiry(name, email, message) VALUES("'.$name.'","'.$email.'","'.$message.'")'; $stmt = $dbh -> prepare($sql); $stmt -> execute(); $dbh = null; ?> </body> </html>
完成ページはこちら
http://portfolio.tank.jp/contact/