簡體   English   中英

查看包含Cookie,JavaScript和移動設備重定向的完整網站

[英]View full site with cookies, javascript and mobile redirect

我有一個網站(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並重定向到主網站,我們需要檢查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";
};

可行的替代邏輯

如果找不到Cookie cookie force_desktop並且screen.width <= 699

然后重定向到m.myseite.com

其他

出口

注意

我已經運行以下腳本,以確保正在放置cookie。

<?php
print_r($_COOKIE);
?>

我已經沒有足夠的想法了,並且知道我的編碼是不正確的,尤其是If / Else語句中的If / Else語句。 我也不確定是否最好使用“ isset”來查看是否正在使用cookie或($ _COOKIES ['variable'] ==“#”)。 我非常感謝您對此提供的良好反饋。

預先感謝您的幫助和建議,

馬特

您正在混合使用JavaScript和PHP。 您正在嘗試在PHP腳本中使用screen.width ,但這沒有任何意義。 您需要使用echo語句將JavaScript輸出到頁面中。 然后它將檢查用戶的屏幕分辨率並進行重定向。

嘗試這個:

if(isset ($_COOKIE["force_desktop"])){
    exit;
}
else
{
    echo '<script> 
    if (screen.width <= 699) {
    document.location = "http://m.mywebsite.com";}
    </script>'; 
};

您應該在php頁面的頂部進行此測試,並確保您不能像這樣混合使用php和Java腳本

您可以像這樣更改此代碼

<?php
 $flag = 0;
 if(isset($_COOKIE['force_desktop']))$flag++;
?>

在頁面的后面,只要<head>標記啟動,就使用代碼

..
..
<head>
<?php
if(!$flag){
echo '<script> 
if (screen.width <= 699) {
document.location = "http://m.mywebsite.com";
</script>'; 
 }
?>

您不能將javascript和PHP混合使用,javascript是前端,而PHP是后端。 嘗試這樣的事情:

if( $something ){

   Header("Location: somewhere.php");

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM