0

選択ボックスに表示するオプションを決定するために、switch ステートメント内で $_GET を使用しています。サーバーを PHP 5.3.21 にアップグレードするまで、状況は良好でした。現在、未定義のインデックスと未定義の変数のエラー メッセージが表示されます。if isset() を含めるようにコードを変更しました。エラーはなくなりましたが、$_GET["menuid"} に値があることを PHP に認識させることができません。

変数を取得しようとしている URL:

http://www.example.com/mod/page/view.php?id=5100&module=1&menuid=2&module=1&page=2

私が使用しているコード:

if (isset($_GET['menuid'])) {
    $menuid = $_GET['menuid'];
}
else {
    $menuid = "not working";
}

echo $menuid;
switch($menuid) {
    // My code
   }

結果は次のとおりです。

「機能していません」

編集: PHP サブページでの「var_dump($_GET)」の結果

array(0) { }

EDIT:var_dump($_GET)PHPメインページの結果

array(4) { ["id"]=> string(4) "5100" ["module"]=> string(1) "1" ["menuid"]=> string(1) "2" ["page"]=> string(1) "2" }

上記の var_dump は、PHP のメイン ページからのものです。元のコードは、file_get_contents(); を使用して PHP のメイン ページに含めた別の PHP ページにあります。file_get_contents() がこの問題を引き起こしますか?

4

2 に答える 2

1

file_get_contents() が $_GET を正しく機能させていないことが判明しました。メイン PHP ページのコードを require_once() に変更しました。元のコードがオンになっているサブ PHP ページの var_dump($_GET) は、次のようになります。

array(4) { ["id"]=> string(4) "5100" ["module"]=> string(1) "1" ["menuid"]=> string(1) "2" ["page"]=> string(1) "2" }

助けてくれた@Mansfieldに感謝します

于 2013-09-05T14:39:12.007 に答える