[英]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.