2011-02-05 61 views
1

我正在開發一個長期開發的web應用程序項目。該應用程序有兩面,該網站的大部分是公開訪問。但是,有些部分要求用戶在訪問特定內容之前先登錄。谷歌自定義搜索並傳遞查詢字符串變量

當用戶登錄時,他們得到一個會話ID(GUID),存儲在數據庫中的一個表中,它跟蹤所有關於用戶及其活動的數據。

該應用程序的每一頁都被編寫以查看該會話ID變量是否存在於查詢字符串中。如果用戶試圖訪問這些受保護區域之一,應用程序將檢查此會話變量是否在查詢字符串中。如果我不是,他們被重定向到登錄屏幕。

的網站移動流量有用戶從安全區域無縫地向非安全區域,來回等

所以我們做了與谷歌自定義搜索測試運行和它的真棒在這些公共領域裏找到我們所有的動態內容。但是,我們一直未能弄清楚如何將sessionid與搜索結果IF一起通過用戶已經登錄。

是否有可能將已存在於url中的查詢字符串變量與搜索結果一起使用?

+2

你爲什麼要在查詢字符串中存儲會話ID?在過去的十年左右,Cookies就是這個標準。 – 2011-02-06 23:24:31

回答

0

據我所知,這是不可能的。 Google不會爲您提供在其自定義搜索中修改搜索結果網址的可能性。

一個可能的解決方案是將您的會話密鑰存儲到Cookie,而不是將它傳遞給每個URL。

0

使用parseQueryFromUrl功能

function parseQueryFromUrl() { 
    var queryParamName = "q"; 
    var search = window.location.search.substr(1); 
    var parts = search.split('&'); 
    for (var i = 0; i < parts.length; i++) { 
     var keyvaluepair = parts[i].split('='); 
     if (decodeURIComponent(keyvaluepair[0]) == queryParamName) { 
     return decodeURIComponent(keyvaluepair[1].replace(/\+/g, ' ')); 
     } 
    } 
    return ''; 
    } 

選擇結果選項僅在查找&感覺,它會爲你提供的代碼。 www.google.com/cse/