phpで「$_SERVER」を使ったコードが表示されません。
ローカル環境
VagrantにLAMP環境
php
1<?php 2echo $_SERVER['PHP_SELF']; 3echo $_SERVER['HTTP_HOST']; 4echo $_SERVER["REQUEST_URI"]; 5?>
としても何も表示されません。
どなたか原因がわかる方いらっしゃいますか?
フォルダ階層は、
/var/www/html/index.php
で、
DocumentRoot "/var/www/html"
です。
実行環境はブラウザ(Google Chrome)です。
var_dump($_SERVER);
とすると「array(0) { }」とでます。
「php.ini」を変えたら動きました。
原因はこれから調査します。
ありがとうございました。
実行はどのようにされていますか?コマンドでしょうか、ブラウザからでしょうか。
エラー表示をOnにしてみてください。https://qiita.com/shotets/items/3c95aef631b2c5eadae5 あとvar_dump($_SERVER);ではどうでしょうか。もしNoticeのindexエラーが出ている場合、定義されていない(実行環境により参照できない)ということになります。コマンドから実行した場合にはありそうです。
そこをもっと詳しく書いていただかないと再現確認とれませんので。アクセスURLとか
エラー表示の確認とvar_dumpもお忘れなく。回答もついてしまってますけど
var_dump($_SERVER);
で、実行結果が「array(0) { }」となりました。どうゆうことでしょうか?中身がない?
エラーとvar_dumpのアドバイスありがとうございます。それこそ基本なんですね!!
これ空ってことですよね?一回表示されたんですが、急にエラーになりました。心当たりは全くありません・・・
エラー表示をしたところ、「Notice: Undefined index: PHP_SELF in /var/www/html/hello.php on line 29 Notice: Undefined index: HTTP_HOST in /var/www/html/hello.php on line 30 Notice: Undefined index: REQUEST_URI in /var/www/html/hello.php on line 31」とでました。これはちょうど「echo $_SERVER['PHP_SELF']; echo $_SERVER['HTTP_HOST']; echo $_SERVER["REQUEST_URI"];」のところです。「未定義のインデックス」ということですが、なぜ現在空なのかわかりません・・・
空である場合はエラーになる・・・?
なぜ空?
頑なに実行URLを提示しないのはなぜでしょうか。むしろそちらのほうが大事です。あと細かいですが、ChromではなくChromeです。
PHPのバージョンも関係するかもしれませんけど。それも「実行環境」のうちです。
URLはローカル環境なのですが、見れるのですか?PHPはPHP 5.4です。あれ?7.1をインストールしたはずなんですが・・・www
そこはphpinfo()の結果を以てご提示ください。「見れるのですか?」が何を聞きたいのか分かりませんが、あなたの環境を私のPCから確認するのではなく、同じような環境を私の方で用意して確認するという意味です。
あくまで「ブラウザからどのように実行しているか」の確認です。あとは私の回答の通りです
なるほど!!!!

回答3件
あなたの回答
tips
プレビュー