SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】$_REQUESTに$_COOKIEが入っていない

問題

$_REQUEST って「$_GET、 $_POST そして $_COOKIE の内容をまとめた連想配列です。」ですよね?

私の環境では $_COOKIEが入っていないんですけど。

答え

デフォルトの状態では$_REQUESTは$_GET+$_POST+$_COOKIE。

しかし、request_order、variables_order という設定による。

このディレクティブは、PHP が GET 変数や POST 変数そしてクッキー変数を _REQUEST 配列に登録する際の順序を表します。 登録は左から右の順に行い、後から登録した値が古い値を上書きします。

このディレクティブが設定されていない場合は、variables_order を使用して $_REQUEST を設定します。

デフォルトの配布状態の php.ini ファイルには、クッキーの ‘C’ が含まれていないことに注意しましょう。 セキュリティを考慮したためです。

http://jp2.php.net/manual/ja/ini.core.php#ini.request-order

phpのソースに同梱されているphp.iniを使っている環境では、以下のような設定で、$_REQUEST = $_GET + $_POST でした。

# php -i | grep _order
request_order => GP => GP
variables_order => GPCS => GPCS
......

関連するメモ

コメント