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

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

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

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

Q&A

解決済

4回答

403閲覧

PHP ログに記載されている’PHP Notice: Use of undefined constant ’の発生理由を知りたい

saya24

総合スコア222

PHP

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

0グッド

0クリップ

投稿2019/02/11 03:22

PHPのログに
PHP Notice: Use of undefined constant cd - assumed 'cd' in C:\xampp\~.html on line 124
との記載があります。

問題のコーディング部分は、以下の先頭行のようです。

PHP

1for ($i = 1; $i <= count($data[cd]); $i++) { 2 if($data[cd][$i] == "" || $data[cd][$i] == null) { 3 break; 4 } 5 $linecount = $linecount + 1; 6}

早速 $data[cd]をvar_dumpで画面に表したのが以下の状態です。
イメージ説明
ログに不用意なメッセージを出したくないので、先のメッセージを出さないようにしたいのですが、どういった対策をとればよろしいでしょうか?値を格納できているということは、Undefinedになっている理由もよく分かりません。

よろしくお願いいたします。

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

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

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

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

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

guest

回答4

0

ベストアンサー

PHP

1$data[cd]

PHPでは、変数に「$」を付けないと定数リテラルとして判断されます。
上記では、cdが該当します。

ご提示のコード外で$cdを宣言しているのであれば、以下で問題ないです。

PHP

1$data[$cd]

投稿2019/02/11 03:29

kazto

総合スコア7196

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

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

saya24

2019/02/11 03:52

ご支援をありがとうございます。 重要なことを書き忘れました。直前で$data = $_POST;としていて、連想配列で収まる認識なんです。キーに$をつけるのでしたっけ?
kazto

2019/02/11 03:58

$_POSTであれば、連想配列のキーは文字列でしょうから、`$data['cd']`でしょう。
saya24

2019/02/11 04:04

ありがとうございます、言われてみればそうですね。 助かりました。
guest

0

エラーのままです。添字なのか変数なのか不明ですが、どちらかの書式に合わせて記述すれば良いです。

投稿2019/02/11 03:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

定数cd を定義していないからだと思います。
記載いただいたソースより上の箇所で定義されてますか?

投稿2019/02/11 03:27

aikon_marimo

総合スコア1083

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

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

0

PHPのログに

ログ確認しないとエラーが確認できない状態は、学習段階・開発段階ではアウトです。
AjaxやAPIのようなバックグラウンドで実際に画面確認ができないもの以外はエラー表示Onの状態で確かめるべきでしょう。

ログに不用意なメッセージを出したくない

ログの残し方は一応、設定できますが(参考)
PHPが出力するエラーは、要は自身のコーディングの不備を知らせるものでもあるので、
「不用意なログ」というのはあくまで自身の問題と捉え、自身のコーディングに活かすために
あえてそこを変える必要はないですし、変えることで自身の成長のチャンスを潰すことにもなります。
今回のようなエラーはプログラミングの構文エラーなので、厳しく言うと自身の力不足に他なりません。
受け止めて今後の参考にしてください。自身がどういうミスをしやすいか分かれば、改善の道も見つけやすいはずです。

~.html

こう書いてあるとあらぬ詮索を強います(ふつうはPHPファイルのはずなので)
特殊な設定をしてあるのでしたらそちらも補足情報を入れておいてください。

投稿2019/02/11 13:03

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問