Информация, которую вы ищете, доступна в $_SERVER['HTTP_REFERER']
Например, со страницы с этим URL: http://tests/temp/temp-2.php?q=test+glop
, эта часть кода:
var_dump($_SERVER['HTTP_REFERER']);
Дает:
string 'http://tests/temp/temp-2.php?q=test+glop' (length=40)
Вы можете использовать parse_url
, чтобы получить строку запроса с этого URL:
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
var_dump($query);
получит вас:
string 'q=test+glop' (length=11)
Теперь вы можете проанализировать эту строку запроса с помощью parse_str
; этот код:
$params = array();
parse_str($query, $params);
var_dump($params);
Получит ли ты:
array
'q' => string 'test glop' (length=9)
И, наконец, вы можете проверить, находится ли интересующий вас параметр в этом массиве:
if (isset($params['q'])) {
var_dump($params['q']);
}
Даст нам, в этом примере:
string 'test glop' (length=9)
Et voila; -)
Просто обратите внимание, что Referer отправляется клиентом, что означает:
- он может быть подделан и может содержать все что угодно - включая плохие вещи (остерегайтесь инъекций SQL и XSS!)
- опционально: браузер не обязан отправлять его.