2009-12-31 4 views
0

$location 변수를 헤더 행에 어떻게 써야합니까? 지금은 아무것도 ... 빈 ADRESS 줄을 ... 발견하지이 짧은 PHP 코드의 문법 문제

가 여기에 지금까지이 작업은 다음과 같습니다

$location='/ad?ad_id='.$id_nr; 
    Header("Location: $location"); 

을 BTW,이 내 컴퓨터, 가상 서버에의 ADRESS은 절대!

?ad_id=.$id_nr 부분없이 작동합니다.

+0

서버의 오류 로그를 확인 했습니까? –

답변

0

위치 헤더는 http : // 또는 https와 같은 다른 프로토콜로 시작하는 완전한 형식의 절대 주소 여야합니다. 상대 URL은 지정할 수 없습니다.

사이트의 루트 URL로 대체 mysite.com으로,이 시도 :

<?php 

$location='/ad?ad_id='.$id_nr; 
Header("Location: http://www.mysite.com/$location"); 
// or, on your local machine 
Header("Location: http://localhost/$location"); 

?> 

당신은 당신을 위해 일을 할 수있는 더 유용한 함수를 작성 결국 고려해 볼 수 있습니다 :

<?php 

function redirect_to($location, $halt = true) { 
    $root = $_SERVER['HTTP_HOST']; 
    header("Location: $root/$location"); 
    if ($halt) 
    exit; 
} 

?> 
+0

내 컴퓨터의 가상 서버에 있습니다 ...이 기능은 정확히 같지만 다른 페이지의 변수 확장을 사용하지 않습니다 ... 따라서 절대 값입니다 –

+2

아니요, 상대 경로도 지정할 수 있습니다 – Sarfraz

+0

@Camran 컴퓨터의 가상 서버 여전히 localhost 또는 127.0.0.1과 같은 주소가 있습니다. http : // localhost/ad? ad_id = ... – meagar

-1

위치 변수에서 유효한 파일 확장명 (예 : html 또는 php)이 표시되지 않습니다. 파일 확장자가없는 것은 확실합니까?

$location='/ad?ad_id='.$id_nr; 
Header("Location: $location"); 
0

전체 URL을 얻으려면 $ _SERVER [ 'HTTP_HOST']를 사용하십시오.

헤더 호출 후 종료를 잊지 마세요. 스크립트는 자동으로 멈추지 않을 것입니다. 멈추라 고 말하면됩니다.