: 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
을 사용하면 해당 U에서 쿼리 문자열을 가져올 수 있습니다. RL :
$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)
잇 짜잔 ;-)
는 그냥 Referer 의미 클라이언트에 의해 전송됩니다 참고 :이 위조 될 수
- 을, 아무것도 포함 할 수 있습니다 - 나쁜 물건 포함 (SQL 인젝션 및 XSS를주의하십시오!)
- 브라우저는 전송할 필요가 없습니다.
+1 : 우수 답변. 네, HTTP의 맥락에서 정말로 "referer"이라고 쓰여져 있습니다. 8-) – RichieHindle
고마워! Ergh, 당신의 코멘트를 읽으면서, 나는 처음에 "오, 내가 그것을 잘못 말 했나요?" ^^ 우리 일상 업무에서 또 하나 재미있는 일이 있습니다 ^^ –
나는 따라하지 않을까 걱정됩니다. 내가 말하는 경우 : $ query = $ _SERVER [ 'HTTP_REFERER']; 다음은 $ query = 전체 Google 주소입니다. 내가 말하는 경우 : $ query = parse_url ($ _ SERVER [ 'HTTP_REFERER'], PHP_URL_QUERY); var_dump ($ query); $ query에 값이 없습니다. var_dumps를 포함해야합니까, 아니면 교육용으로 사용해야하나요? –