2012-09-25 4 views
0

현재 설정된 GET 매개 변수에 따라 링크를 만들려고합니다.GET 매개 변수에서 링크 만들기

내 URL은 다음과 같습니다

$bar = $_REQUEST['bar']; 
<a href="index.php?bar=<?php echo $bar?>&page=anotherpage" 

하지만 링크를 클릭 할 때마다, 그것은 다시 URL로 전체 문자열을 추가 : 나는 다음을 수행 내 코드에서

http://mysite.com/index.php?bar=test&page=page 

합니다.

http://mysite.com/index.php?bar=test&page=anotherpagepage=anotherpage 

그리고 다음 클릭이 (가) 작성 : 등등

http://mysite.com/index.php?bar=test&page=anotherpagepage=anotherpagepage=anotherpage 

그리고 첫 번째 클릭처럼

나에게이 URL을 줄 것입니다. 아무리

http://mysite.com/index.php?bar=test&page=anotherpage 

내가 링크를 클릭 횟수 : URL이 항상 같이 보이도록

한 번만 요청을 얻을 수있는 방법이 있습니까?

고맙습니다.

+0

문제가 당신의 경로에이다, 절대 경로로 이것을 시도하십시오 – baig772

답변

1

첫 번째 예에서는 앰퍼샌드가 누락되었습니다. (& amp). 이 시도해 : 더 나은

$bar = $_REQUEST['bar']; 
<a href="index.php?bar=<?php echo $bar?>&amp;page=anotherpage" 

또는를, XSS, 크로스 사이트 스크립팅 보안 취약점을 방지하기 위해 사용하기 전에 변수를 탈출. URL에 urlencode()을 사용하십시오.
http://nl.php.net/manual/en/function.urlencode.php :이 같은 당신이 먼저 배열을 구성 할 수 PHP 함수 http_build_query

에보고해야

$bar = $_REQUEST['bar']; 
<a href="index.php?bar=<?=urlencode($bar)?>&amp;page=anotherpage" 
+0

앰퍼샌드 기호 (&)를 사용하고 엔티티 (&)를 사용하지 않으면 어떤 문제가 생기는 브라우저가 있습니까? 내 경험상, 브라우저는 이것을 어쨌든 URL 인코딩합니다. –

+0

감사합니다. Im 시도해보십시오 – Bolli

+0

트릭을 수행하기 위해 seamed urlencode을 고맙습니다. 고마워요! – Bolli

0

:

$query = array("bar"=>$_REQUEST['bar'], "page"=>"anotherpage") 
echo '<a href="/index.php?'.http_build_query($query).'">Link</a>'; 
+0

감사합니다. – Bolli

관련 문제