やりたいこと
MySQLに保存するプログラムを書いているのですが、保存されておらず、そのプログラムにより、表示されるはずのものが表示されていません。
なので、MySQLに保存するように指示しているコードでどこがよくない原因でどのように直せば良いのか教えてもらいたいです。
現在の状況
簡単なお問い合わせフォームを制作しています。
お問い合わせの流れ
【 index.html 】
--お問い合わせ内容を記入
【 check.php 】
--記入漏れがあった際は、やり直させ
【 thanks.php 】
--データをMySQLに保存
--お問い合わせ内容の表示
--お問い合わせ内容をメールで保存
check.phpのコード
php
1<!DOCTYPE HTML PUBLIC="-//W3C//DTD/HTML 4.01Transitional//EN"> 2<html> 3 <head> 4 <meta http-equiv="content-type" charset="utf-8"> 5 </head> 6 7 8 <body> 9 10 <?php 11 $name=filter_input(INPUT_POST,"name"); 12 $content=filter_input(INPUT_POST,"content"); 13 $gread=filter_input(INPUT_POST,"gread"); 14 $greadnum=filter_input(INPUT_POST,"greadnum"); 15 $class=filter_input(INPUT_POST,"class"); 16 $iken=filter_input(INPUT_POST,"iken"); 17 18 19 $name=htmlspecialchars($name); 20 $content=htmlspecialchars($content); 21 $gread=htmlspecialchars($gread); 22 $greadnum=htmlspecialchars($greadnum); 23 $class=htmlspecialchars($class); 24 $iken=htmlspecialchars($iken); 25 26 27 28 29 if($name=="") 30{ 31 print"お名前が入力されていません。<br>"; 32} 33else 34{ 35 print"ようこそ"; 36 print$name; 37 print"様"; 38 print"<br>"; 39} 40 41 if($content=="") 42{ 43 print"報告内容が選択されていません。<br>"; 44} 45else 46{ 47 print"報告内容【"; 48 print$content; 49 print"】<br>"; 50 } 51 52 if($gread=="") 53{ 54 print"学校が選択されていません。<br>"; 55} 56else 57{ 58 print"学校【"; 59 print$gread; 60 print"】"; 61} 62 63 if($greadnum=="") 64{ 65 print"学年が選択されていません。<br>"; 66} 67else 68{ 69 print"学年【"; 70 print$greadnum; 71 print"】<br>"; 72} 73 74 if($class=="") 75{ 76 print"クラスが選択されていません。"; 77} 78else 79{ 80 print"クラス【"; 81 print$class; 82 print"】<br>"; 83} 84 85 if($iken=="") 86{ 87 print"ご意見が入力されていません。<br>"; 88} 89else 90{ 91 print"ご意見【"; 92 print $iken; 93 print"】<br>"; 94} 95 96if( $name==''||$content==''||$gread=''||$greadnum==''||$class=''||$iken=='') 97{ 98 print'<form>'; 99 print'<input type="button" onclick="history.back()" value="戻る">'; 100 print'</form>'; 101} 102else 103{ 104 print'<form method="post" action="thanks.php">'; 105 print '<input name="name" type="hidden" value="'.$name.'">'; 106 print '<input name="content" type="hidden" value="'.$content.'">'; 107 print '<input name="gread" type="hidden" value="'.$gread.'">'; 108 print '<input name="greadnum" type="hidden" value="'.$greadnum.'">'; 109 print '<input name="class" type="hidden" value="'.$class.'">'; 110 print '<input name="iken" type="hidden" value="'.$iken.'">'; 111 print'<input type="button" onclick="history.back()" value="戻る">'; 112 print'<input type="submit" value="OK">'; 113 print"</form>"; 114} 115?> 116 117</body> 118</html>
thanks.phpのコード
php
1<!DOCTYPE HTML PUBLIC="-//W3C//DTD/HTML 4.01Transitional//EN"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UFT-8"> 5</head> 6<body> 7 8 9<?php 10 11//mysql 12$dsn ='mysql:dbname=project;host=localhost'; 13$user= 'root'; 14$password= ''; 15$dbh = new PDO($dsn,$user.$password); 16$dbh->query('SET NAMES uft8'); 17 18$name=$_POST['name']; 19$content=$_POST['content']; 20$gread=$_POST['gread']; 21$greadnum=$_POST['greadnum']; 22$class=$_POST['class']; 23$iken=$_POST['iken']; 24 25$name=htmlspecialchars($name); 26$content=htmlspecialchars($content); 27$gread=htmlspecialchars($gread); 28$greadnum=htmlspecialchars($greadnum); 29$class=htmlspecialchars($class); 30$iken=htmlspecialchars($iken); 31 32// 表示内容 33print'報告内容'; 34print$name; 35print'様<br>'; 36print'ご報告ありがとうございます。<br>'; 37print'報告内容『'; 38print$goiken; 39print'』<br>'; 40print$email; 41print'メールに送りましたのでご確認ください。'; 42 43 44//メール内容 45$email_sub='ご報告を受け付けました。'; 46//$email_subにはメールタイトルが入る 47$mail_body=$name."様へ/nアンケートご協力ありがとうございました。"; 48//$mail_bodyにメール本文が入る 49$mail_body=html_entity_decode($mail_body,ENT_QUOTES,"UFT-8"); 50$mail_head='From:#'; 51//$mail_headでメールのヘッダー情報を記載 52mb_language('Japanese'); 53mb_internal_encoding("UFT-8"); 54mb_send_mail($email_sub,$mail_body,$mail_head); 55 56 57//自動保存機能 58$sql ='INSERT INTO anketo (nickname,email,goiken) VALUES("'.$name.'","'.$content.'","'.$gread.'","'.$greadnum.'","'.$class.'","'.$iken.'")'; 59$stmt = $dbh->prepare($sql); 60$stmt->execute(); 61 62$dbh = null; 63 64 65?> 66</body> 67</html>
回答4件
あなたの回答
tips
プレビュー