質問: PHPでcookieが使えるかどうかを調べる方法を探しています。 一般的には、まずcookieを発行し、同一画面にリダイレクトさせ、cookieが残っていれば使えるし、残っていなければ使えないという判定だと思いますが、その場合、そのサイトへの初めての訪問なのか、それとも、リダイレクト後なのかの判定の為に、URLにパラメーターが必要です。 ただ、そうすると、表示URLにパラメーターが付くので、動的URLのようになってしまいますが、なんとかcookie判定後にこのパラメーターを消す方法がないかを探しています。 .htsccessの設定か何かで、パラメータ取得後に、パラメーターを消す方法はないものでしょうか? または、同一サイトへのリダイレクトではなく、他ページにリダイレクトさせ戻ってくるような方法でもいいのですが、$_SESSIONや$_POSTを使って、なんとかURLにパラメーターを含めずに、cookieを判定する方法は無いものでしょうか?
回答: チェック前とチェック後のページが「GETパラメータを含み全く同じURL」というのは,PHP側だけでシンプルに済ませたいのであれば不可能です. * 判定用のGETパラメータを付加する (p-craftさんがご存知の方法) * 別のページを用意する (shi_ueさんの提案) 基本的にはこのどちらかを選択することになります.どちらを選ぶかは好みですね.ただ,私としてはJavaScript側でやっておくので十分だと思います. * `nagivator.cookieEnabled`をJavaScript側でチェックし,`false`であればその旨を表示する (terionさんの提案) **「いやいやそれじゃJavaScript使えないとき困るでしょ」**って?ご心配なく.`` を使いましょう.そのメッセージで 「当サイトのご利用にはJavaScript**とCookie**を有効にしていただく必要があります」 と出せばいいだけです. ``` Example 当サイトのご利用にはJavaScriptとCookieを有効にしていただく必要があります ``` (IE8以下もサポートしろとか言われそうな気がしたので古い書き方にしました)