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

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

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

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

Q&A

解決済

1回答

1082閲覧

php エラーに関する質問

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2019/09/01 05:59

現在、phpを作って簡単なアンケートを作っているのですが、エディタで書いていた際に波線が表示されているのですが、どこに間違いがあるのかが分かりません。

php

1<?php 2 //mysql 3$dsn ='mysql:dbname=phpkiso;host=localhost'; 4$user= 'root'; 5$password= ''; 6$dbh = new PDO($dsn,$user.$password); 7$dbh->query('SET NAMES uft8'); 8 9$nickname=$_POST['nickname']; 10$email=$_POST['email']; 11$goiken=$_POST['goiken']; 12 13$nickname= htmlspecialchars('nickname'); 14$email= htmlspecialchars('email'); 15$goiken= htmlspecialchars('goiken'); 16 17 //表示内容 18print$nickname;

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

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

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

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

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

mari.rinn

2019/09/02 07:48 編集

質問文は誰にでもわかるように、出来るだけ具体的に書かれた方が良いです。 エディタで波線が出ていたのはどの部分かを書かないとわかりません。 それとは別に $nickname= htmlspecialchars('nickname'); $email= htmlspecialchars('email'); $goiken= htmlspecialchars('goiken'); この3行の()内は、$nickname $email $goiken という変数になると思いますよ。その際、引用符はつけません。 補足です。出典名をキチンと書いて、本の書き写しをしてることを明記してください。 それとあなたの現在のエラーは100%書き写しの時のスペルミスです。ここで質問して人にそれを探してもらうのじゃなく、自分で本とよく見比べてスペルミスを見つけてください。
退会済みユーザー

退会済みユーザー

2019/09/02 00:52

そもそも、「簡単なアンケート」という一言でそのシステムに求められる要求仕様を把握できるものではないので、どういう機能を盛り込もうとしているのか、データ構造をどうしようとしているのかなど書き表さないと、ニュータイプ的なカンによる回答になって、ほしいアドバイスがなかなか得られないと思われます。
mari.rinn

2019/09/02 07:45

m6u様 この質問者様の前の質問の時も書いてるのですが(質問者さんじゃないのに余計なお世話ですみませんが)、この方は本の内容をそのままコピペされてるだけなのです。 まあ質問者さんはこの先もこの本の書き写しでエラー出て質問されるなら、キチンとその旨を書かれた方が良いですよね。 じゃないとみなさん真剣に内容についてもアドバイスしてくださるのでお手間取らせて失礼ですよね。
退会済みユーザー

退会済みユーザー

2019/09/02 13:19

mari.rinn様 phpタグ内のコメントをご覧になったらわかると思いますが、コピペして、内容を理解していない訳ではありません。そのため、コメントの機能を使ってそのコードの意味を書くなど、仮に理解していないとしても、理解はしようと学習をしています。 明確に質問内容を記載できなかった事に関しては、ご迷惑をおかけしてしまい、申し訳ありません。 この本は、この様な事をしているのだという事は、本以外にも分かってはいるのですが、中々まだ文章にして発信することは困難ですが、よりわかりやすく明確な質問ができる様に努めて行きたいと思います。
mari.rinn

2019/09/02 23:01

-apple-様 ちょっと書き方がキツイ感じになってしまいごめんなさい。また、私の言いたいことがうまく伝わらないような書き方になったこともごめんなさい。 上のコメントの補足に書いたように、要は本からの模写の場合はそれを明記して頂きたいということです。こちらの質問者様のような書き方をしていただければと思います。 https://teratail.com/questions/209610
退会済みユーザー

退会済みユーザー

2019/09/03 08:59

-mari.rinn-様 提示してくださった、質問も参考にしていきたいとお思います。
guest

回答1

0

ベストアンサー

$dbh = new PDO($dsn,$user.$password);

じゃなくて

$dbh = new PDO($dsn,$user,$password);

$userと$passwordを文字列として連結してしまっていて、3個めのパラメータが不足してしまっています。
「,」と「.」の区別がつかないのであれば、フォントのサイズを大きくするか、
プログラミングに向いている等幅フォントに入れ替えて表示させるべきかと。


質問者が直接求めていないかもしれないアドバイスも添えます。

PDOを使ったデータベース接続の良いサンプルを提示します。
PHPでデータベースに接続するときのまとめ - Qiita

DSN文字列の指定の箇所で、UTF8エンコーディングでの接続を指定することが可能なことと、
drivers_optionの与え方で接続のタイミングで異常時に例外をスローさせる指定もできることを
覚えておくと良いです。

php

1$nickname=$_POST['nickname']; 2$email=$_POST['email']; 3$goiken=$_POST['goiken'];

この箇所、POST送信がない場合に「Notice:Undefined index」が生じます。
これを回避するためには、
1) isset($_POST['nickname']) などとisset()にて存在するかどうかチェックするか、
2) filter_input(INPUT_POST, 'nickname') などとしてPOST送信があってもなくても差し支えないようにする、
という対応が必要でしょう。

php

1$nickname= htmlspecialchars('nickname'); 2$email= htmlspecialchars('email'); 3$goiken= htmlspecialchars('goiken');

この箇所、html表示用に加工するのはひとまず良いですが、
もしもファイルに出力したりデータベースに保持しようとするときには、
表示直前に htmlspecialchars() を使うべきです。
参考:「何故htmlspecialcharsを通すのか?」を一言でどうぞ - Qiita

投稿2019/09/02 00:54

編集2019/09/02 01:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/09/02 13:24 編集

ご回答ありがとうございます。 「,」と「.」の違いでのエラーでした。 質問が明確ではなく、大変ご迷惑をおかけしてしまい、申し訳ございません。 脳内で分かっていても、まだ中々やろうと思っている事が文字として表しずらいというのが現状ですが、php及ぶプログラミングの学習を通してより明確で、回答者に伝わりやすく、回答してもらえる様な質問がしていける様に、努力していきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問