質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1214閲覧

php アンケート結果が表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/08/30 10:44

アンケートフォームを実装しているのですが、アンケート項目に記載漏れがあった場合のみ戻る様にして、記載に問題がない場合のみつぎのページに移行する様にしたのですが、ページが移動したさい、表示されません。

html

1<html> 2 <head> 3 <meta http-equiv="content-type" charset="utf-8"> 4 </head> 5 <body> 6 <form method="POST" action="check.php"> 7 ニックネームを入力して下さい<br> 8 <input name="nickname" type="text" style="width: 100px"><br> 9 メールアドレスを入力して下さい。<br> 10 <input name="email" type="text" style="width: 200px"><br> 11 ご意見を一言でお聞かせ下さい。<br> 12 <input name="goiken" type="text" style="width: 300px"><br> 13 <br> 14 <input type="submit" value="送信"> 15 </form> 16 17 </body> 18</html>

php

1<html> 2 <head> 3 <meta http-equiv="content-type" charset="utf-8"> 4 </head> 5 6 7 <body> 8 9 <?php 10 $nickname=filter_input(INPUT_POST,"nickname"); 11 $email=filter_input(INPUT_POST,"email"); 12 $goiken=filter_input(INPUT_POST,"goiken"); 13 14 $nickname=htmlspecialchars($nickname); 15 $email=htmlspecialchars($email); 16 $goiken=htmlspecialchars($goiken); 17 18 if($nickname=="") 19 { 20 print"ニックネームが入力されていません。<br>"; 21 } 22 else 23 { 24 print"ようこそ"; 25 print $nickname; 26 print"様"; 27 print"<br>"; 28 } 29 30 if($email=="") 31 { 32 print"メールアドレスが入力されていません。<br>"; 33 } 34 else 35 { 36 print"メールアドレス:"; 37 print$email; 38 print"<br>"; 39 } 40 41 if($goiken=="") 42{ 43 print"ご意見が入力されていません。<br>"; 44} 45else 46{ 47 print"ご意見『"; 48 print $goiken; 49 print"』<br>"; 50} 51 52if( $nickname==''||$email==''||$goiken=='') 53{ 54 print'<form>'; 55 print'<input type="button" onclick="history.back()" value="戻る">'; 56 print'</form>'; 57} 58else 59{ 60 print'<form method="post" action="thanks.php">'; 61 print '<input name="nickname" type="hidden" value="'.$nickname.'">'; 62 print '<input name="email" type="hidden" value="'.$email.'">'; 63 print '<input name="goiken" type="hidden" value="'.$goiken.'">'; 64 65 print'<input type="button" onclick="history.back()" value="戻る">'; 66 print'<input type="submit" value="OK">'; 67 print"</form>"; 68} 69?> 70 71 </body> 72</html>

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<?php 8$dsn = 'myspl;dbname=project;host=localhost'; 9$user = 'root'; 10$password = ''; 11$dbh = new PDO('$dsn,$user,$password'); 12$dbh ->query('SET NAME uft8'); 13 14$nickname=$_POST['nickname']; 15$email=$_POST['email']; 16$goiken=$_POST['goiken']; 17 18$nickname=htmlspecialchars($nickname); 19$email=htmlspecialchars($email); 20$goiken=htmlspecialchars($goiken); 21 22 23print$nickname; 24print'様<br>'; 25print'ご意見ありがとうございました<br>'; 26print'いただいたご意見『'; 27print$goiken; 28print'』<br>'; 29print$email; 30print'メールに送りましたのでご確認ください。'; 31 32 33//メールを送信するプログラム 34/* 35$mail_sub='アンケート受け付けました'; 36$mail_body=$nickname."様へ/nアンケートにご協力いただきありがとうございました。"; 37$mail_body=html_entity_decode($mail_body,ENT_QUOTES,"UFT-8"); 38$mail_head='From:xxx@xx.co.jp'; 39mb_language('Japanese'); 40mb_internal_encoding("UFT-8"); 41mb_send_mail($mail,$mail_sub,$maail_body,$mail_head); 42*/ 43$sql = 'INSERT INTO anketo (nickname,email,goiken)VALUES("'.$nickname.'","'.$email.'","'.$goiken.'")'; 44$stmt = $dbh->prepare($sql); 45$stmt ->execute(); 46 47$dbh = null; 48?> 49</body> 50</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/08/30 11:55

なんで最後filter_inputじゃなく$_POSTなんだろう・・・ 意味分かって使ってるんでしょうか。 あと想定通りのhtmlになってるかどうかブラウザ「ソースを表示」で確認してくださいね。 ところで、質問は何でしょうか。 できれば質問テンプレートにそって書いてください。
takasima20

2019/08/30 13:49

まさか hidden 指定しておいて表示されないってハナシ?
mari.rinn

2019/08/31 03:39 編集

このthanks.phpのファイル、最後のsql文まで書いているということは、本の通りやってるなら、その前までの print'メールに送りましたのでご確認ください。'; までを一応表示するというのはクリアされてるんですかね? だとすると問題はsql文からということになりますので、その旨追記された方が良いかと思います。もし、sql文前まででのチェックをされてないなら、とりあえずsql文はコメントアウトしといて、本の通り、ここまでを表示してみてどうなるかチェックしてください。
mari.rinn

2019/08/31 00:05

m.ts10806様 質問者さんじゃない私が答えるのもあれですが、この本(いきなりはじめるPHP)という本は、意味とか文法的な物はほとんどまともには教えてなくて、とにかく挫折せずにやる為には四の五の言わずに作ってみようよ ていうコンセプトのいわば「なんちゃってPHP」の本ですので、作って動かす楽しさみたいなものを味わう為のものですから、いろいろさわりを入れてるのであっちには書いてるけどこっちには書いてないみたいなのも出てきます。 まあそういう本なので細かい所は突っ込まないであげてください‎(笑)
退会済みユーザー

退会済みユーザー

2019/08/31 16:04

いきなりPHPって挫折させて足切りするための書籍じゃなかったけ?
guest

回答1

0

ベストアンサー

修正依頼の方に書いたことをふまえてというか、私の推測ですので違ってたらごめんなさいですが、
おそらく、DB側のテーブル作成の方の問題ではないかと思います。
テーブルはちゃんと作成出来ていますか?カラム名などに間違いがないか等、よく確認してみてください。

【補足 9/1】
8zca様の補足を拝見して、ちょこちょこスペルミスをされてることがわかりましたので、それが原因かもですね。まずは徹底的にスペルミスがないか、よく確認してみてください。

投稿2019/08/31 03:43

編集2019/08/31 22:52
mari.rinn

総合スコア296

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

8zca

2019/08/31 15:32

(補足です) $dsn = 'myspl;dbname=project;host=localhost'; $dbh = new PDO('$dsn,$user,$password'); dsnの書き方に不備がある(mysqlの後ろのセミコロン)のと、PDOインスタンス生成時に文字列にしちゃってるところがまずそうですね(他にもあるかもしれません)。 思ったように動かない場合は、phpのエラーログを見てエラーになっていないかを確認するか、display_errorsで画面にエラー表示させるようにして問題を見つけやすくするのがよいと思います。 ご参考)PHPのエラー表示設定について https://qiita.com/shotets/items/3c95aef631b2c5eadae5
mari.rinn

2019/08/31 22:49 編集

あ〜! 8zca様の補足見て今頃気づきました! mysql じゃなくて、mysplにもなってますね!
退会済みユーザー

退会済みユーザー

2019/09/01 03:41

ミスがないか確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問