メインバージョンとモバイルバージョンを備えたウェブサイトを持っています。クリックすると2つのことを行う「サイト全体を表示」ボタンを作成しようとしています。
- ボタンがクリックされたことをサイトが記憶できるように Cookie を設定します。
- サイトのメイン (モバイルではない) バージョンに移動します。
これが私がそれをやろうとした方法です:
- ボタンを作成します。
- クリックすると、Cookie を設定する PHP を含むプロセッサ ページに移動し、サイトのメイン バージョンにリダイレクトします。
- 「サイト全体を表示」ボタンがクリックされたかどうかをチェックする PHP をサイトのメイン バージョンに追加します。
これが私のサイトが構築されているものです:
- jQuery Mobile (サイトはこれで構築)
- PHP モバイル検出
- jQuery クッキー
しかし、それは機能していません。
サイトのメイン バージョンのインデックス、開始 HTML タグの上のヘッダーには、次のようなものがあります。
if(!isset($_COOKIE['dontDoMob'])){
//its not set so check for device type.
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
if ($detect->isMobile() ) {
//"its some kind of mobile device so redirect to mobile";
header("Location:http://myforecyte.com/m/");
exit();
}
}
モバイル サイトのインデックスにボタンを追加し、クリックして jQuery 経由で Cookie を設定し、Cookie のおかげでサイトのメイン バージョンをロードし続けるホームページにリダイレクトします。
しかし、それはうまくいきませんでした: リダイレクトさえしませんでした。jQuery Mobile のせいかどうかわからなかったので、すべて分離しました。私がしたことは、jQuery モバイル内の「サイト全体を表示」リンクを設定し<a href="processorpage.php" rel="external">
て、次のコードを含む別のプロセッサ ページ (のような) に移動することでした。
setcookie('dontDoMob', 'yes');
header("Location:http://www.myforecyte.com");
しかし、それは常にモバイル版に戻ります。メイン サイトの URL が一瞬表示された後、再びモバイルにリダイレクトされます。あたかもクッキーが設定されていないかのように。
クッキーを世界規模で設定することなどと関係があると思います。
注: 次のコードを使用して、Cookie を設定するプロセスが正常に機能することを確認しました。
if(isset($_COOKIE['dontDoMob'])){
echo "its set yo";
} else {
echo "its not set";
}
それは機能し、「そのセットよ」と教えてくれます。すべての Cookie を削除して Firebug で再テストすると、常にそれに応じて動作します。