PHPでcookieが使えるかどうかを調べる方法を探しています。
一般的には、まずcookieを発行し、同一画面にリダイレクトさせ、cookieが残っていれば使えるし、残っていなければ使えないという判定だと思いますが、その場合、そのサイトへの初めての訪問なのか、それとも、リダイレクト後なのかの判定の為に、URLにパラメーターが必要です。
ただ、そうすると、表示URLにパラメーターが付くので、動的URLのようになってしまいますが、なんとかcookie判定後にこのパラメーターを消す方法がないかを探しています。
.htsccessの設定か何かで、パラメータ取得後に、パラメーターを消す方法はないものでしょうか?
または、同一サイトへのリダイレクトではなく、他ページにリダイレクトさせ戻ってくるような方法でもいいのですが、$_SESSIONや$_POSTを使って、なんとかURLにパラメーターを含めずに、cookieを判定する方法は無いものでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
チェック前とチェック後のページが「GETパラメータを含み全く同じURL」というのは,PHP側だけでシンプルに済ませたいのであれば不可能です.
- 判定用のGETパラメータを付加する (p-craftさんがご存知の方法)
- 別のページを用意する (shi_ueさんの提案)
基本的にはこのどちらかを選択することになります.どちらを選ぶかは好みですね.ただ,私としてはJavaScript側でやっておくので十分だと思います.
nagivator.cookieEnabled
をJavaScript側でチェックし,false
であればその旨を表示する (terionさんの提案)
**「いやいやそれじゃJavaScript使えないとき困るでしょ」**って?ご心配なく.<noscript></noscript>
を使いましょう.そのメッセージで
「当サイトのご利用にはJavaScriptとCookieを有効にしていただく必要があります」
と出せばいいだけです.
html
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 5 <title>Example</title> 6 </head> 7 <body> 8 <noscript> 9 <p>当サイトのご利用にはJavaScriptとCookieを有効にしていただく必要があります</p> 10 </noscript> 11 <p id="msg"></p> 12 <script type="text/javascirpt" src="https://code.jquery.com/jquery-1.12.1.min.js"></script> 13 <script type="text/javascript"> 14 <!-- 15 $(function () { 16 $('#msg').text( 17 navigator.cookieEnabled 18 ? 'ようこそ!' 19 : '当サイトのご利用にはCookieを有効にしていただく必要があります' 20 ); 21 }); 22 //--> 23 </script> 24 </body> 25</html>
(IE8以下もサポートしろとか言われそうな気がしたので古い書き方にしました)
投稿2016/03/09 06:28
編集2016/03/09 06:49総合スコア5223
0
$_SESSIONはcookieを使えないと、パラメータとして渡してやるか、使えないかのどちらかになってしまいますので、不可でしょう。
cookieが使えないときの着地ページを別に作るなら、可能です。
- index.phpで$_COOKIEをセットして、k=1を付けてリダイレクト
- $_GETにkがセットされているなら、$_COOKIEを調べてセットされていないなら、着地ページに。
というかたちにすれば、パラメータは見せなくて済みそうです。
投稿2016/03/09 05:10
総合スコア4437
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/09 05:20
2016/03/09 08:01
2016/03/09 08:05
2016/03/09 08:54
2016/03/09 19:18
2016/03/09 19:18
2016/03/09 19:20
0
cookies が使用可能か 判定する方法です。
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_nav_cookieenabled
cookies の設定方法は、下記サイト。
https://www.whatismybrowser.com/guides/how-to-enable-cookies/
投稿2016/03/09 04:24
退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/09 06:39
2016/03/09 06:41
2016/03/09 07:16 編集
2016/03/09 07:18
2016/03/09 19:16
2016/03/09 19:16