PHPの変数未定義エラー

このQ&Aのポイント
  • PHPの変数未定義エラーについて詳しく説明します。
  • 表示されるエラーメッセージの内容と、原因の一例を紹介します。
  • 解決策として、変数を事前に定義する方法を紹介します。
回答を見る
  • ベストアンサー

PHPの変数未定義エラー

<p>PHPのテストです。</p> <p> <?php print $name.'さん<br />'; ?> </p> と入れてみましたが僕の場合は ------------------------------------------------------------------------ PHPのテストです。 Notice: Undefined variable: name in C:\Program Files\Apache\Apache24\htdocs\sample3-1.php on line 17 さん ------------------------------------------------------------------------- となってしまいました。$name = NULL;をあらかじめ入れておけばこのページのように ------------------------------------------------------------------------- PHPのテストです。 さん ------------------------------------------------------------------------ となってくれます。この違いはバージョンなどの違いでしょうか?

  • PHP
  • 回答数3
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.3

以下のまとめをよく読んでください。 Qiita - $_GET, $_POSTなどを受け取る際の処理 http://qiita.com/mpyw/items/2f9955db1c02eeef43ea バージョンによってerror_reportingのデフォルト設定が異なることはあるようですね。

KAIJI-000
質問者

補足

参考ページの提示ありがとうございます。まだまだ僕のレベルでは1回読んだだけでは分かりませんが、今後の糧とさせていただきます。

その他の回答 (2)

  • t_ohta
  • ベストアンサー率38% (5076/13260)
回答No.2

エラーメッセ時の通り、定義されていない変数名が使用されたと注意を受けているのです。 予め変数を定義すれば注意は出ません。 かなり昔のバージョンからこのエラーはあります。 但し、PHPの設定でエラー表示レベルをNoticeは表示しないように設定されている環境だとエラーが表示され無い場合もあります。 バージョンの違いでは無く、設定の違いです。

KAIJI-000
質問者

補足

回答有難うございます。設定の違いだったんですか。参考になりました。

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

$nameという変数には何も入っていません。(というか、$nameという変数も存在しません) なので、いきなり何が入っていますか?表示してくださいと言われても困りますよってことです。

KAIJI-000
質問者

補足

ただ、このページではエラーは出ないと言うことが書かれていますよね?

関連するQ&A

  • クラスと文法とエラー。なぜこの出力

    <?php $chk = new nanikore(); class nanikore{ var $queryY; var $queryZ; function nanikore(){ $this->$queryY = array( "name" => "test1"); $this->$queryZ = array( "name"=> "test2" ); print_r( $this->$queryY ); } } ?>この実行結果が以下になるのはなぜですか?orz 特に以下の部分が理解できません Array ( [name] => test2 ) こうなるつもりなのですが・・・。Noticeエラーのせいなのでしょうか あとなぜノーティスエラーがでるのでしょうか。。よろしくお願いします Array ( [name] => test1 ) //////////////////////////////////////////////////////////// Content-type: text/html X-Powered-By: PHP/4.3.6 <br /> <b>Notice</b>: Undefined variable: queryY in <b>F:\nanikore.php</b> on line <b>8</b><br /> <br /> <b>Notice</b>: Undefined variable: queryZ in <b>F:\nanikore.php</b> on line <b>9</b><br /> <br /> <b>Notice</b>: Undefined variable: queryY in <b>F:\nanikore.php</b> on line <b>10</b><br /> Array ( [name] => test2 )

    • ベストアンサー
    • PHP
  • JavascirptかPHPでコメントフォーム

    http://qitailang.small.jp/webtech/commentbox/commentform.html このサイトのコメントフォームを使おうと思っているのですが 行き詰っています。 アパッチのhtdocsの直下にフォルダを置き、 フォルダ名をcommentform_modifiedとしてその下にsample.htmlを置き さらにその下に commentform commentform.php commentform.js commentform.css commentfiles としました。今の所パーミッションというのは触っていません。 元々このサイトとは違う練習用のPHPファイルはうまくいっています。ただ今回、 http://localhost/commentform_modified/sample.htmlとして実行した所PHPのエラーが出ています。 Notice: Use of undefined constant file - assumed 'file' in C:\Program Files\Apache\Apache24\htdocs\commentform_modified\commentform\commentform.php on line 17 Notice: Use of undefined constant cmd - assumed 'cmd' in C:\Program Files\Apache\Apache24\htdocs\commentform_modified\commentform\commentform.php on line 21 Notice: Undefined index: cmd in C:\Program Files\Apache\Apache24\htdocs\commentform_modified\commentform\commentform.php on line 21 Notice: Use of undefined constant cmd - assumed 'cmd' in C:\Program Files\Apache\Apache24\htdocs\commentform_modified\commentform\commentform.php on line 57 Notice: Undefined index: cmd in C:\Program Files\Apache\Apache24\htdocs\commentform_modified\commentform\commentform.php on line 57 まず17行目から21行目辺りですが $commentdir = 'http://localhost/commentform_modified/commentform'; /*--------------------------------------------*/ $Comment = array(); if (!is_dir($commentdir)) mkdir($commentdir); if ($_REQUEST[file] && is_file("$commentdir/$_REQUEST[file].dat")) { $a=1; $Comment = file("$commentdir/$_REQUEST[file].dat"); } if ($_REQUEST[cmd] == 'commentRegist') { としています。 57行目は } elseif ($_REQUEST[cmd] == 'delete') { となっています。 双方とも何がいけないんでしょうか?

    • ベストアンサー
    • PHP
  • PHP 下記エラーメッセージの解消について

    下記PHP エラーメッセージの解消方法と、正常にプログラムが動くための簡単なスクリプトも添えていただければ幸いです。よろしくお願い申し上げます。 ■エラーメッセージ (1)Notice: Undefined variable: error in C:\xampp on line 66 (2)Notice: Undefined variable: error in C:\xampp on line 69 ■スクリプト <body> <h1>ログインする</h1> <form action="" method="post"> <dl> <dt>メールアドレス</dt> <dd> ⇒(ここからPHP文です) <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email']); ?>" /> <?php if ($error['login'] == 'blank'): ?> <p class="error">* メールアドレスとパスワードをご記入ください</p> <?php endif; ?> <?php if ($error['login'] == 'failed'): ?> <p class="error">* ログインに失敗しました。正しくご記入ください。</p> <?php endif; ?> ⇒(ここまでPHP文です) </dd> <dt>パスワード</dt> <dd> <input type="password" name="password" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['password']); ?>" /> </dd> ......省略 </form> なのですが、 下記エラーメッセージが出てしまいます。 (1)Notice: Undefined variable: error in C:\xampp on line 66 (2)Notice: Undefined variable: error in C:\xampp on line 69 これは、上記スクリプトのPHP文を指しております。 どのように初期化をすればよいかわからず、ここで立ち止まっておりました。 ☆どうすればこのエラーメッセージを解消でき、また、本スクリプトが正常に作動しますでしょうか? ☆初期化のためのスクリプトを添えて頂ければ嬉しく思います。 みなさまのお力を貸して頂ければ幸いでございます。 よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpについについて質問3

    テキストボックスの内容を送信する事は成功しました。 しかし複数のテキストボックスはできませんでした。 <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ"; print$_POST["ad1"]; print$_POST["ad2"]; print"様"; ?> </form> これは間違いでしょうか? エラーもでてました Notice: Undefined index: ad1 in C:\xampp\htdocs\6.php on line 37 Notice: Undefined index: ad2 in C:\xampp\htdocs\6.php on line 38 様 とでてます すいません いつもいつも 入力された内容を受け取るという作業ができれば なんとなく一応目標達成だとおもいます

    • ベストアンサー
    • PHP
  • PHPのフォームでエラーが出ます

    どなたかお力添えをお願いします。 【全体の流れ】 step1.php ラジオボタンで、商品を3種類選択する template.php 選択した商品名を表示し、金額を計算して表示する step2.php 「template.php」を表示し、規約に同意する step3.php 個人情報入力画面へ ・ ・ ・ という流れでフォームを作っていますが、step1.phpでつまずいています(涙)。 step1.phpのコード(html部分は省略してます)は以下のとおりです。 商品を3つ選んだ場合は、問題なく実行できるのですが、1つ、または2つ選択 した場合、画面上部に Notice: Undefined index: plan in C:\xampp\htdocs\step1_1.php on line 10 Notice: Undefined index: uq in C:\xampp\htdocs\step1_1.php on line 11 などとエラーメッセージが出ます。 ほかは正常に動いています。このメッセージを出なくさせる方法をぜひ、教えてください! よろしくお願いいたします。 <?php session_start(); $error = ""; if(isset($_POST["submit"])==TRUE){ $_SESSION["product1"]=$_POST["product1"]; $_SESSION["product2"]=$_POST["product2"]; $_SESSION["product3"]=$_POST["product3"]; $choice1 = $_SESSION["product1"]; $choice2 = $_SESSION["product2"]; $choice3= $_SESSION["product3"]; //未入力チェック if($choice1== null){ $error .="端末を選択してください<br />"; } if($choice2== null){ $error .="プランを選択してください<br />"; } if($choice3== null){ $error .="UQ Wi-Fiサービスの利用有無を選択してください<br />"; } if($error == null){ $url = "step2.php"; header("Location: ".$url); exit(); } } ?>

    • ベストアンサー
    • PHP
  • $_POST変数が受け取れない。

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 $_POST変数が受け取れません。 一昨日はこれで行けたと思ったのですが var_dump()で調べたらNULLでした。 どうして$_POST変数が受け取れないのでしょうか? すみません。どうか教えてください。 エラーメッセージは Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 11 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 12 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 14 ペンネームブログタイトルカテゴリー 本文 です。 コードは form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){} ?> <h2>ブログフォーム</h2> <form action="/blog_create.php/" method=_POST> ペンネーム<br> <input type="text" name="title"><br> ブログタイトル<br> <input type="text" name="title"><br> カテゴリー<br> <input type="text" name="title"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認ページへ"> </form> <p><a href="/">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </body> 後退してしまいました。 すみません。 ご回答のほど何卒宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPからMySQLに接続できません。

    PHP初心者でWindows XPを使っています。 「実戦マスター PHP+MySQL」という本で勉強しているのですがどうしてもわからないところがあるので教えてください。 MySQLモニタからデータベースの操作まではうまくいったのですが、phpからMySQLを操作する段になってmysql_connect('localhost', 'root', 'xxxx');とするとエラーになるのです。エラー画面は Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\test\test7-1-1.php on line 6 です。何故こんなエラーが出るかわかりません…。どなたか助けて頂けませんでしょうか。

  • このエラー内容はどういう意味ですか?

    PHP初心者です。PHPの教本をみながら掲示板作成中なのですが、下記のようなエラーが返ってまいります。 Notice: Undefined index: upfile in C:\ … on line 24 24> $upfile_name=$_FILES["upfile"]["name"]; これはどういった意味のエラーなんでしょうか?

    • 締切済み
    • PHP
  • PHP文法エラーについて

    恐れ入ります。 下記PHP文法で、ブラウザに次のエラーが表示されます。「Notice: Undefined variable: _FORM in C:\xampp\htdocs\Step2Kadai\input.php on line 3」 該当PHP命令文は下記です。 <?php session_start(); $_SESSION['address'] = $_FORM['address']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MF-02 input</title> <meta charset="utf-8"> </head> <body> <h1>MF-02 input</h1> <form action="mf_form.php" method="post"> <p>アドレス: <input type="email" name="address"> <input type="submit" value="送信"></p> </form> </form> </body> </html> 以上。エラーメッセージのline 3は、$_SESSION['address'] = $_FORM['address']; のところです。 ご指摘をよろしくお願い致します。

    • ベストアンサー
    • PHP
  • クラス内の変数にメソッドからアクセスできない。

    以下のphpのソースで、メソッドcから、クラス内の変数bの値を参照しようとすると"Notice: Undefined variable: b in C:\xampp\htdocs\a.php on line 5"というエラーが出るのですが、どのようにすれば参照できるのか教えてください。 phpのバージョンは5.5.15です。 <?php class A{ private $b = 0; public function c(){ print $b; } } $x = new A; $x->c(); ?>

専門家に質問してみよう