初歩的な質問で申し訳ございません。
現在初心者向けのPHP参考書にて標題の機能がうまく実装できないため
ご教示いただけますでしょうか?
・「アンケート自動保存機能」についての問題点
上記機能のコードを追加した途端にサンクスページに何も表示されなくなり、
且つデータベースに保存されない。
・「自動返信メール機能」の問題点
メールが来ない。
- php動作環境
XREAというレンタルサーバーにて動作しています。
- PHPバージョン
PHP7
- データベース
mysql5.7.21(GUIはphpMyadminを使用)
- エラーメッセージ
特に表示されません。(表示のさせ方がわかりません。。。)
- PC
macOS 10.13.1
HTML
1<!--入力ページ--> 2<form method="post" action="check.php"> 3<p>ニックネームを入力してください。</p> 4 <input name="nickname" type="text" style="width: 100px;"><br> 5<p>アドレスを入力してください。</p> 6 <input name="mail" type="text" style="width: 100px;"><br> 7<p>ご意見を入力してください。</p> 8 <input name="iken" type="text" style="width: 100px;"><br> 9 <input type="submit" value="確認"> 10</form> 11
PHP
1 2//確認ページ 3<?php 4 $nickname=$_POST['nickname']; 5 $mail=$_POST['mail']; 6 $iken=$_POST['iken']; 7 8 $nickname=htmlspecialchars($nickname); 9 $mail=htmlspecialchars($mail); 10 $iken=htmlspecialchars($iken); 11 12 if($nickname==''){ 13 print'ニックネームが入力されておりません。<br>'; 14 }else{ 15 print "ようこそ"; 16 print $nickname; 17 print'様'; 18 print'<br>'; 19 } 20 21 if($mail==''){ 22 print'アドレスが入力されておりません。<br>'; 23 }else{ 24 print "メールアドレス"; 25 print $mail; 26 print'<br>'; 27 } 28 29 if($iken==''){ 30 print'ニックネームが入力されておりません。<br>'; 31 }else{ 32 print '意見「'; 33 print $iken; 34 print'」<br>'; 35 } 36 if($nickname==''||$mail==''||$iken==''){ 37 print'<form>'; 38 print'<input type="button" onclick="history.back()" value="戻る">'; 39 print'</form>'; 40 }else{ 41 print'<form method="post" action="thanks.php">'; 42 print'<input name="nickname" type="hidden" value="'.$nickname.'">'; 43 print'<input name="mail" type="hidden" value="'.$mail.'">'; 44 print'<input name="iken" type="hidden" value="'.$iken.'">'; 45 print'<input type="button" onclick="history.back()" value="戻る">'; 46 print'<input type="submit" value="送信">'; 47 print'</form>'; 48 } 49?>
PHP
1//サンクスページ 2<?php 3//データベース自動保存機能 4 $dsn='mysql:dbname=php;host=localhost'; 5 $user='root'; 6 $password=''; 7 $dbh = new PDO($dsn, $user, $password); 8 $dbh->query('SET NAMES utf8'); 9//ここまで 10 11 $nickname=$_POST['nickname']; 12 $mail=$_POST['mail']; 13 $iken=$_POST['iken']; 14 15 $nickname=htmlspecialchars($nickname); 16 $mail=htmlspecialchars($mail); 17 $iken=htmlspecialchars($iken); 18 19print $nickname; 20print '様<br>'; 21print 'お問い合わせありがとうございました!<br>'; 22print 'いただいたおご意見「'; 23print $iken; 24print '」を<br>'; 25print $mail; 26print 'に送りました'; 27 28// 自動返信メール機能 29$mail_sub='アンケートを受け付けました。'; 30$mail_body=$nickname."様へ\nアンケートご協力ありがとうございました。"; 31$mail_body=html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); 32$mail_head='From:XXX@XXX.co.jp'; 33mb_language('Japanese'); 34mb_internal_encoding("UTF-8"); 35mb_send_mail($email,$mail_sub,$mail_body,$mail_head); 36//ここまで 37 38//データベース自動保存機能 39 $sql='INSERT INTO anketo(nickname,mail,iken)VALUES("'.$nickname.'","'.$mail.'","'.$iken.'")'; 40 $stmt=$dbh->prepare($sql); 41 $stmt->execute(); 42 43 $dbh=null; 44//ここまで 45?> 46
回答2件
あなたの回答
tips
プレビュー