やりたいこと
MySQLに保存するプログラムを書いているのですが、保存されておらず、そのプログラムにより、表示されるはずのものが表示されていません。
なので、MySQLに保存するように指示しているコードでどこがよくない原因でどのように直せば良いのか教えてもらいたいです。
現在の状況
簡単なお問い合わせフォームを制作しています。
お問い合わせの流れ
【 index.html 】
--お問い合わせ内容を記入
【 check.php 】
--記入漏れがあった際は、やり直させ
【 thanks.php 】
--データをMySQLに保存
--お問い合わせ内容の表示
--お問い合わせ内容をメールで保存
check.phpのコード
php
<!DOCTYPE HTML PUBLIC="-//W3C//DTD/HTML 4.01Transitional//EN"> <html> <head> <meta http-equiv="content-type" charset="utf-8"> </head> <body> <?php $name=filter_input(INPUT_POST,"name"); $content=filter_input(INPUT_POST,"content"); $gread=filter_input(INPUT_POST,"gread"); $greadnum=filter_input(INPUT_POST,"greadnum"); $class=filter_input(INPUT_POST,"class"); $iken=filter_input(INPUT_POST,"iken"); $name=htmlspecialchars($name); $content=htmlspecialchars($content); $gread=htmlspecialchars($gread); $greadnum=htmlspecialchars($greadnum); $class=htmlspecialchars($class); $iken=htmlspecialchars($iken); if($name=="") { print"お名前が入力されていません。<br>"; } else { print"ようこそ"; print$name; print"様"; print"<br>"; } if($content=="") { print"報告内容が選択されていません。<br>"; } else { print"報告内容【"; print$content; print"】<br>"; } if($gread=="") { print"学校が選択されていません。<br>"; } else { print"学校【"; print$gread; print"】"; } if($greadnum=="") { print"学年が選択されていません。<br>"; } else { print"学年【"; print$greadnum; print"】<br>"; } if($class=="") { print"クラスが選択されていません。"; } else { print"クラス【"; print$class; print"】<br>"; } if($iken=="") { print"ご意見が入力されていません。<br>"; } else { print"ご意見【"; print $iken; print"】<br>"; } if( $name==''||$content==''||$gread=''||$greadnum==''||$class=''||$iken=='') { print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">'; print '<input name="name" type="hidden" value="'.$name.'">'; print '<input name="content" type="hidden" value="'.$content.'">'; print '<input name="gread" type="hidden" value="'.$gread.'">'; print '<input name="greadnum" type="hidden" value="'.$greadnum.'">'; print '<input name="class" type="hidden" value="'.$class.'">'; print '<input name="iken" type="hidden" value="'.$iken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK">'; print"</form>"; } ?> </body> </html>
thanks.phpのコード
php
<!DOCTYPE HTML PUBLIC="-//W3C//DTD/HTML 4.01Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UFT-8"> </head> <body> <?php //mysql $dsn ='mysql:dbname=project;host=localhost'; $user= 'root'; $password= ''; $dbh = new PDO($dsn,$user.$password); $dbh->query('SET NAMES uft8'); $name=$_POST['name']; $content=$_POST['content']; $gread=$_POST['gread']; $greadnum=$_POST['greadnum']; $class=$_POST['class']; $iken=$_POST['iken']; $name=htmlspecialchars($name); $content=htmlspecialchars($content); $gread=htmlspecialchars($gread); $greadnum=htmlspecialchars($greadnum); $class=htmlspecialchars($class); $iken=htmlspecialchars($iken); // 表示内容 print'報告内容'; print$name; print'様<br>'; print'ご報告ありがとうございます。<br>'; print'報告内容『'; print$goiken; print'』<br>'; print$email; print'メールに送りましたのでご確認ください。'; //メール内容 $email_sub='ご報告を受け付けました。'; //$email_subにはメールタイトルが入る $mail_body=$name."様へ/nアンケートご協力ありがとうございました。"; //$mail_bodyにメール本文が入る $mail_body=html_entity_decode($mail_body,ENT_QUOTES,"UFT-8"); $mail_head='From:#'; //$mail_headでメールのヘッダー情報を記載 mb_language('Japanese'); mb_internal_encoding("UFT-8"); mb_send_mail($email_sub,$mail_body,$mail_head); //自動保存機能 $sql ='INSERT INTO anketo (nickname,email,goiken) VALUES("'.$name.'","'.$content.'","'.$gread.'","'.$greadnum.'","'.$class.'","'.$iken.'")'; $stmt = $dbh->prepare($sql); $stmt->execute(); $dbh = null; ?> </body> </html>
まだ回答がついていません
会員登録して回答してみよう