人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ブラウザでクッキーが使えるか判断するのに、PHPを使って1回のアクセスで判断できるんでしょうか。
下記のようにするとクッキーが使えない端末で無限ループしそうです。
良い方法があれば教えてください。よろしくお願いします。

cookie.php
<?php
// クッキーが定義されてなければ定義する
if(!isset($_COOKIE['dmy'])){
$_COOKIE['dmy'] = 'クッキーが使えるよ';
header('Location: cookie.php');
exit;
}
?>

●質問者: araishi
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ku__ra__ge
●50ポイント

リダイレクト先にGETパラメータを付けて、GETパラメータの有無をチェックすれば無限ループしません。
cookie.php

<?php
if( !isset($_COOKIE['dmy']) && !isset($_GET['visited']) ){
$_COOKIE['dmy'] = 'クッキーが使えるよ';
header('Location: cookie.php?visited=1');
exit;
}
?>

araishiさんのコメント
ご回答ありがとうございます! やはりリダイレクトするのが一般的なんですね。

2 ● taroe
●50ポイント

PHPだけを使用して1回のアクセスで
クッキーが使用できるかどうかを知る方法はありません。

質問文のままだと、もちろん無限ループになります。
header('Location: cookie.php');
でリダイレクトしてるので、これが2回目のアクセスになるわけですね。


回答者1の方法が一般的です。
PHP辞典 第2版 (DESKTOP REFERENCE)
西沢 直木
4798116238

にも同じようなロジックが載っています。

ネットでも、
http://www.phppro.jp/qa/1159
http://blog.olivesystem.com/388.html
ように、似たようなロジックが紹介されています。


araishiさんのコメント
ご回答ありがとうございます! URLの方を拝見しました。参考にさせて頂きます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ