2011-02-05 7 views
1

Я работаю над проектом веб-приложений, который находится в разработке в течение длительного времени. Приложение имеет две стороны, большая часть сайта является общедоступной. Тем не менее, есть разделы, которые требуют, чтобы пользователь вошел в систему, прежде чем они смогут получить доступ к определенному контенту.Google Custom Search и Passing Querystring Variables

Когда пользователь входит в систему, они получают sessionid (GUID), который хранится в таблице в базе данных, которая отслеживает все сортировки данных о пользователе и их активности.

Каждая страница приложения была написана, чтобы посмотреть, существует ли эта переменная идентификатора сеанса или нет в запросе. Если пользователь пытается получить доступ к одной из этих защищенных областей, приложение проверяет, находится ли эта переменная sessiond в запросе. Если i нет, они перенаправляются на экран входа в систему.

Поток двигается сайт имеет пользователь движущуюся легко из обеспеченных районов к незащищенным районам, взад и вперед, и т.д.

Таким образом, мы сделали пробный запуск с пользовательским поиском Google, и это делает удивительное работа, собирающая весь наш динамический контент в этих общественных местах. Однако нам не удалось выяснить, как пройти сеанс с результатами поиска IF пользователь уже зарегистрирован.

Возможно ли переменные pa querystring, которые уже существуют в URL-адресе вместе с результатами поиска?

+2

Почему вы храните идентификатор сеанса в строке запроса? Cookies являются стандартными для этого, например, в последнее десятилетие или около того. –

ответ

0

Насколько я знаю, это невозможно. Google не дает вам возможности изменять URL-адреса результатов поиска в своем пользовательском поиске.

Возможным решением было бы сохранить ваш Session-Key в 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 ''; 
    } 

Выберите результаты только вариант в Look & Feel и предоставит вам код. www.google.com/cse/

Смежные вопросы