2012-12-20 2 views
0

안녕하세요, 저는 request_uri에서 이중 게시를 피하는 방법을 알고 싶습니다. 예를 들어request_uri의 내용을 확인하는 방법

:

http://www.example.com/foo/foo/... 

에만해야한다 : 예를 들어

http://www.example.com/foo/... 

내가 내가 그것을 전에 확인해야하는 헤더 기능에 필요한 검사를 만드시겠습니까 헤더. url-string에 double postings이 포함되어 있으면 헤더를 사용하면 안됩니다. 난 정말 감사하겠습니다 나를 도울 수있는 사람이있는 경우

$host = $_SERVER['HTTP_HOST']; 
$url = $_SERVER['REQUEST_URI']; 
$urlArray = explode('/', $url); 
$urlArrayUnique = array_unique($urlArray); 
$urlUnique = implode('/', $urlArrayUnique); 

if (isset($_SESSION['a'])){ 
    $var = $_SESSION['a']; 
    if($url !== $urlUnique){ 
     header ('Location:'.$host.'/'.$var.'/'.$basename); 
     exit; 
    } 
} 

: 그래서 검사 같은 것을 할 것이다.

감사합니다.

+0

완전한 코드를 게시하십시오. –

+0

업데이트 됨 내 질문. – bonny

답변

0

아래 코드를 사용해보십시오 ...

$url = $_SERVER['REQUEST_URI']; 

$urlArray = explode('/', $url); 

$urlArrayUnique = array_unique($urlArray); 

$urlUnique = implode('/', $urlArrayUnique); 

당신은 너무 $ urlArray에 dulicate 값을 얻을 수 있습니다 .... 폭발 독특한 얻을 내파 그 URL로 사용

+0

안녕하세요.이 질문에 답변 해 주셔서 감사합니다. 뭔가 잘못되었다고 생각합니다. this 및 if ($ url! == $ urlUnique) { \t \t header ('위치 :'. $ 호스트. '/'. $ var. '/'. $ basename); \t \t 종료; \t} ->는 전체 URL을 반복해서 반복합니다. – bonny

0

필요에 따라 코드를 수정할 수 있습니다.

$host = $_SERVER['HTTP_HOST']; 
$url = $_SERVER['REQUEST_URI']; 
$urlArray = explode('/', $url); 
$lai = max(array_keys($urlArray));//here we get the max array index  
if($urlArray[$lai-1] != $urlArray[$lai])header('Location:'.$host.'/'.$var.'/'.$basename); 
관련 문제