2013-03-24 12 views
-1

長話短說,我有一個主站點和它的移動版本。我試圖創建一個「查看完整網站」按鈕,單擊時,它執行2個功能。他們是鏈接出jQuery手機+設置cookie + PHP =主要頭痛。請幫助

1.設置一個cookie,以便主頁可以跟蹤是否點擊「查看完整網站」按鈕。

2.導航到主要的父(不是移動)網站點擊。

我已經嘗試了很多東西,所以我不會阻塞頁面(我的大腦都在這個地方)。反正 我試圖解決它的最終辦法是,通過我

-1打破了這一切的Loooooong方式。創建按鈕

-2。上點擊,瀏覽與PHP是設置cookie的處理器頁面,這樣做後,重定向到主站點

-3。主站點有php,檢查「查看完整站點是否被點擊」

它仍然無法正常工作。

下面是什麼我嘗試做的,用什麼IM做一個很好的說明:

- jQuery Mobile的(網站內此建)

- PHP移動檢測(http://code.google.com/p/php-mobile-detect/

- jQuery的餅乾(https://github.com/carhartl/jquery-cookie

注意:就設置cookie和測試它們的存在而言,它們各自適用。

在主網站的索引,在開口HTML標記上方頭我有此 PHP:

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(); 
    } 
} 

在移動站點的索引,i有一個按鈕(「查看完整網站「),點擊應該通過jQuery設置cookie(單獨工作),然後重定向到主頁,因爲在那個時候,cookie會被設置。

由於所有沒有工作(它甚至不會重定向),(不知道是否因爲jQuery移動的),並假設它當時我隔一切順利,

我所做的是此(下面)

我設置視圖完整的網站的jQuery移動內鏈接轉到這樣一個單獨的處理器頁面(等)。該處理器頁面有這個

PHP:

setcookie('dontDoMob', 'yes'); 

header("Location:http://www.myforecyte.com"); 

現在,當我檢查餅乾的東西基本是這樣的(以確保cookie中設定) PHP:

if(isset($_COOKIE['dontDoMob'])){ 

    echo "its set yo"; 

} else { 

echo "its not set"; 
} 

它的工作原理,並告訴我「它的集合喲」哈哈(我不得不笑)。當我刪除所有的cookies並用螢火蟲重新測試時,它總是相應地工作。

,所以我刪除所有廢話,只是離開 PHP:

setcookie('dontDoMob', 'yes'); 

header("Location:http://www.myforecyte.com"); 

會發生什麼,之​​後是....好......它總是可以追溯到移動。我看到主要網站的URL秒,然後再次重定向到移動。就像cookie沒有設置一樣。

PS /提示 - 我認爲它與在全球範圍內設置cookie或類似的東西有關...不知道如何去做。該bain混亂。

Im LOST!

任何幫助,邏輯調整....任何我可以得到我謙卑的欣賞。

謝謝先進。

回答

0

Cookie具有'域名'限制,

例如,默認情況下,http://mobile.example.com的Cookie是而不是可用於http://www.example.com

但是,它可用於創建cookie的域的所有子域。例如。 http://a.mobile.example.comhttp://b.mobile.example.com

您可以指定在設置Cookie時應爲哪個域創建Cookie。在這裏閱讀PHP手冊:

http://php.net/manual/en/function.setcookie.php

不知道這是你的問題的完整的答案,但因爲你是提的多個域名,這可能是問題的一部分

希望這有助於

+0

你好Jeztah。所以我重寫了這樣的cookie:setcookie('dontDoMob','yes',0,'/','www.myforecyte.com');並做同樣的事情。我看到主要網站的網址位仍然回到移動 – somdow 2013-03-24 18:58:50

+0

重定向是通過PHP完成的?或者你是否嘗試使用JavaScript使用同一個cookie?如果是這樣,請確保'httponly'設置爲false。但是,我建議再次嘗試調試代碼來檢查cookie是否實際在主頁上正確讀取,並且(臨時)刪除JavaScript以縮小問題範圍 – thaJeztah 2013-03-24 19:04:09

+0

是的,重定向和cookie設置是通過php完成的。我試過js,但它也無法正常工作。即時通訊猜測cookie不會被主頁讀取,因爲我確實看到重定向發生,但cookie,因爲它沒有讀取或保存在頁面之間,它會自動將我循環到移動頁面... – somdow 2013-03-24 19:18:09

1

我一直試圖做同樣的事情,我終於得到它的工作。我用同樣的方法,因爲我不知道你爲什麼不工作...

在我的移動網站上,我有一個按鈕來查看整個網站。此按鈕鏈接到www.fullsite.com/setmobile.php

setmobile.php是一個簡單的PHP文件是這樣的:

<?php 
    setcookie("mobile", "full", time()+3600); 
    header("Location:http://www.fullsite.com"); 
?> 

它設置cookie並進入主站點。主要站點有下面的PHP代碼:

<?php 
if (!isset($_COOKIE["mobile"])){ 
    (...detect mobile script) 
} 
?> 

這對我的作品,但它看起來像你使用,所以我不知道爲什麼你的工作不相同的方法...

你有可能找到一個解決方案現在,但如果沒有,我希望這可以幫助你:)

祝你好運, 安德魯