2011-12-22 32 views
-2

這可能是一個複雜的問題,但我需要做的事情與您訪問製造商網站時看到的國家/地區選擇頁面非常相似 - 那些詢問您來自哪裏的人以及然後選擇你被送到適當的網站,說美國版本或西班牙語版本。我已經看到這些用彈出式窗口或影子盒完成,這是首選。所以......要記住和重定向的Cookie

  1. 當您進入首頁的彈出(或更好,但陰影盒)2秒
  2. 的用戶提供圖形和/或文字鏈接後出現去站點A或站點B
  3. 用戶選擇正確的網站,他們和發送給它的
  4. 曲奇(S)只剩下用戶如此 答:他們再也見不到的選擇框,只要cookie在那裏。 B.他們總是被重定向到他們正確的選擇,當他們點擊頁面。

在我的研究中,它看起來像你可以做一個,但不是兩個。你怎麼看?

+2

我想你有一份要求清單,你想要什麼樣的建議?不確定你問什麼。 – Robert 2011-12-22 16:53:35

+2

「你可以做一個但不是兩個」 - 不知道什麼是「兩個」。你所描述的是絕對有可能的,並且是一個非常基本的cookies使用。 – maxedison 2011-12-22 16:54:10

+1

'它看起來像你可以做一個但不是兩個'其中一個(或兩個)其中兩個選項? – DaveRandom 2011-12-22 16:54:17

回答

0

大致是什麼,你需要爲了進行每一步

function redirectPopup(){ 
/*Do your popup stuff*/ 
} 

document.onload = function(){ 

    /*set timer to call your popup renderer*/ 
    setTimeout(redirectPopup,2000) 
} 

通過以上你有彈出幾個選項,我建議以下

- 具備的一個彈出式窗口包含在來自網站訪問的響應文本中,其可見性設置爲隱藏。然後讓你的redirectPopup函數改變樣式屬性以顯示彈出窗口 - 禁用其他所有東西。 - 使用redirectPopup函數生成整個彈出窗口。

至於cookie,您可以使用setcookie函數http://php.net/manual/en/function.setcookie.php,它可以用來自動重定向用戶的現場訪問。例如:

/*Server request with $_GET redirectTo property*/ 
if(isset($_GET['redirectTo'])) 
    setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14); 

/*Check if the redirectTo cookie exists, redirect if true*/ 
if(isset($_COOKIE['redirectTo'])) 
    header("location:". $_COOKIE['redirectTo']); 

/*Do your initial, no redirect stuff here*/ 
.... 

在當用戶訪問該網站的服務器首先檢查,看看他們是否已經選擇了一個重定向選項上面的例子;已經假定當用戶選擇重定向選項時,目的地url與包含GET參數'redirectTo'的站點相同。如果爲此參數找到了一個值,則假定用戶必須訪問了該站點才能看到重定向選項,並設置了其重定向cookie。

第二部分檢查cookie是否已設置,如果是,則重定向用戶。在這個例子中,我只是將cookie的值傳遞給了頭函數,實際上以稍微更復雜的方式來處理這個問題會更實際一些。

setcookie方法不需要傳遞給它的有限時間段,因此您無法設置永久cookie,但可以將其設置爲一個荒謬的保留期。最後,cookies只能被用戶從他們當時正在使用的機器和瀏覽器中訪問,如果沒有某種形式的用戶日誌記錄,無法實現重定向時間和位置。

Kevin B對不總是啓用cookie的用戶說得很好。考慮到這一點,php代碼的第一行可能會被編輯爲以下內容來處理這種情況。

/*Server request with $_GET redirectTo property*/ 
if(isset($_GET['redirectTo'])) 

    /*Where setting a cookie fails*/ 
    if(! setcookie('redirectTo', $_GET['redirectTo'], time() + 86400 * 14)) 
     header("location:" $_GET['redirectTo']); 

與之前的重定向可能從一個有點更復雜,但使用這種方法將強制重定向時Cookie不可受益。

+0

非常感謝。這是一個偉大的領先優勢,我會用它來指引我朝着正確的方向 - 非常感謝奧利弗。 – Brian 2011-12-23 20:04:11

+0

同樣抱歉,因爲我沒有在帖子中說清楚這件事 - 這是我第一次在這裏,也是一個新手。下次會更具體。凱文我和你在一起,這對可用性或SEO不好。我寧願在網站上使用它,但不幸的是,儘管我的抗議,客戶仍然會有辦法......再次感謝所有人。 – Brian 2011-12-23 20:06:17