ウェブサイト (www.website.com) とモバイル サイト (m.website.com) があり、ユーザーがモバイルから必要な場合に「サイト全体を表示」できるようにしようとしています。現在、Javascript を使用してサイト全体の画面幅を確認し、モバイルにリダイレクトしています。
if (screen.width <= 699) {
document.location = "http://m.website.com";
}
これはうまくいきます。モバイルサイトには「サイト全体を表示」ボタンがあります。これをクリックすると、私のスクリプト「force_desktop.php」にリダイレクトされ、Cookie が設定されてからメイン サイトに移動します。
<?php
setcookie("force_desktop", "1");
header("Location: http://www.mywebsite.com");
?>
Cookie を設定してメイン Web サイトにリダイレクトしたので、画面の幅を確認するだけでなく、Cookie を確認する必要があります。
論理
Cookie force_desktop が見つかった場合
その後、終了します
そうしないと
画面サイズのテストを実行する
これは私が使用しようとしたコードですが、動作しません。このコードは、すべてのページで実行される head.php ファイルに配置され、スクリプトの開始タグと終了タグの間に配置されます。
試行 1
if($_COOKIE['force_desktop'] == '1' {
exit;
} else if($_COOKIE['force_desktop'] != '1' {
if (screen.width <= 699) {
document.location = "http://m.website.com";
}
};
試行 2
if(isset ($_COOKIE["force_desktop"])){
exit;
else
if (screen.width <= 699) {
document.location = "http://m.mywebsite.com";
};
機能する可能性のある代替ロジック
IF Cookie force_desktop が見つからず、かつ screen.width <= 699
次に、m.myseite.com にリダイレクトします。
そうしないと
出口
ノート
次のスクリプトを実行して、Cookie が配置されていることを確認しました。
<?php
print_r($_COOKIE);
?>
アイデアが尽きたので、特に If/Else ステートメント内の If/Else ステートメントで、自分のコーディングが正しくないことを知っています。また、Cookie が使用されているかどうかを確認するために「isset」を使用する方が良いのか、それとも ($_COOKIES['variable'] == "#") を使用する方が良いのかわかりません。これに関する良いフィードバックをいただければ幸いです。
あなたの助けと提案を前もって感謝します,
マット