2012-07-07 1 views
0

먼저 URL 인코딩을 사용하지 않고 쿼리 문자열에서 웹 주소를 받아 들일 수 있어야하는 클라이언트 용 스크립트를 함께 사용하려고합니다. 예는 다음과 같이 될 것이다 :쿼리 문자열에서 URL을 urlencode하지 않아도되는 속임수가 있습니까?

www.amazon.co.uk/ 그러나

http://foo.com/script.php?url=www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software&ie=UTF8&qid=1341685530&sr=1-1

, 나는 $ _GET의 내용을 에코 때 'URL이'] 그것은 나에게 다음을 제공합니다

기본적으로 첫 번째 앰퍼샌드에서 질식하는 것처럼 보입니다. 다른 변수가 있다고 생각하기 때문에 추측하고 있습니다.

양식을 urlencoding 외에도,이 일을하는 데 어떤 트릭이 있습니까? 폼에서 POST 할 수도 있지만 스크립트의 아이디어는 무효화됩니다.

+0

no. GET 요청을 사용하면 URL 인코딩이 유일한 옵션입니다. – mata

답변

1

이 특정 사례의 경우 $_SERVER['QUERY_STRING']을 대신 사용해야합니다. 이렇게하면 한 번에 전체 쿼리 문자열을 얻을 수 있습니다. 그런 다음 직접 분리 할 수 ​​있습니다.

예제에서 PHP는 &이 다음 GET 변수의 구분 기호라고 가정합니다.

+0

간단하지만 천재적입니다. 감사 :) – James

0

당신은 쿼리 매개 변수를 요청하고받은 URL에 추가 할 수 있습니다. $ _GET의 나머지 매개 변수를 적절한 순서대로 나열하고 $ _GET [ 'url']의 끝에 추가하십시오.

$_GET['url'] 
+ '&ie=' + $_GET['ie'] 
+ '&qid=' + $_GET['qid'] 
+ '&sr=' + $_GET['sr'] 

언젠가는 추가 매개 변수 url을 가져올 수 있습니다. http://foo.com/script.php?url=www.amazon.co.uk/ESET-Smart-Security-User-Year/dp/B005NPFOBM/ref=sr_1_1?s=software&ie=UTF8&qid=1341685530&sr=1-1&url=http://someAmazoneStuff

관련 문제