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

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

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

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

解決済

php MySQLへの保存方法

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

4回答

-1評価

0クリップ

855閲覧

投稿2019/10/06 10:19

編集2019/10/06 14:02

やりたいこと

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>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

kyoya0819

2019/10/06 10:39

何がわからないのですか?
kyoya0819

2019/10/06 10:47 編集

// 重複投稿してしまったため削除 //
退会済みユーザー

退会済みユーザー

2019/10/06 10:48

MySQLに保存するプログラムを書いているのですが、保存されておらず、そのプログラムにより、表示されるはずのものが表示されていません。 なので、MySQLに保存するように指示しているコードでどこがよくない原因でどのように直せば良いのか教えてもらいたいです。
kyoya0819

2019/10/06 10:49

と言うのは質問本文に追記してください。
退会済みユーザー

退会済みユーザー

2019/10/06 10:52

わかりました。
m.ts10806

2019/10/06 13:58

ひとつ前の質問もそうですし回答でも指摘されていましたが、起きている問題に対してタイトルが大きすぎます。もっと起きている問題寄せたり、要件のみを記載してください

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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