2010-11-15 8 views
0

Я хочу, чтобы получить значение из HTTP_REFERER в том же/подобным образом вы получите его от запроса:

$this->_getParam('order', 0); 

Я думал, что я хотел бы попробовать что-то вроде этого:

$lastrequest = new Zend_Controller_Request_Http($_SERVER['HTTP_REFERER']); 
$lastorder = $lastrequest->getParam('order', 0); 

Но это не работает. Нет параметров. getParams возвращает пустую строку. Что мне не хватает? Есть лучший способ сделать это?

Спасибо!

+0

Можете ли вы показать, что выглядит '$ _SERVER ['HTTP_REFERER']'? Нет данных в $ lastrequest? –

+0

Конечно, есть. Это может выглядеть так: http://domain.com/module/controller/action/param1/data/param2/data –

ответ

3

Это, как правило, плохая идея.

В верхней части того, что Justin pointed out, проще просто передать эти значения на новую страницу напрямую, а не пытаться проанализировать их из реферера.

+0

Вот и все. Мой мозг не должен включаться. –

+0

@sims: Сегодня утром в понедельник. Я удивлен, что мой мозг даже работает. ;) Затем снова, глядя, размышляя, а иногда и отвечая на вопросы SO, может быть хорошая разминка, прежде чем я на самом деле доберусь до своей повседневной работы. – Powerlord

2

От PHP docs for HTTP_REFERER:

Адрес страницы (если таковые имеются), которые называют агента пользователя на текущей странице. Это устанавливается пользовательским агентом. Не все пользовательские агенты установят это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию. Короче говоря, на это нельзя доверять.

Так что имейте в виду, этот параметр не может даже быть установлен в браузере ...

+0

Вы прочитали мой вопрос? Вы просто рассказываете мне что-то из документов, которые я уже знаю. Это больше связано с использованием Zend для анализа строки URL, а не для повторного использования колеса. –