2012-06-30 2 views
1

작동하지 않음에 현재 파일 경로를 저장 I 프로젝트 루트 폴더변수가

include "../functions.php"; 

건에 위치한 functions.php 파일을 사용할 수 있도록 다양한 하위 디렉토리와 프로젝트, 내가 저장해야한다는 것입니다했습니다 현재의 하위 디렉토리 경로이므로 페이지를 다시로드하면 루트 폴더가 아닌 이전의 폴더로 리디렉션됩니다.

header('Location: '.$currFolder.'index.php'); 

나는 각각의 서브 디렉토리 index.php 파일

$currFolder = dirname($_SERVER['PHP_SELF']); // returns "/root/subdir" 

그러나 어떤 이유로, 변수가 비어 유지에 함수를 호출하여 변수에 저장 (시도), 그래서 이렇게하려면 헤더가 계속 루트로 리디렉션됩니다 ... 내가 뭘 잘못하고 있니?

답변

1

세션이나 쿠키에 값을 저장해야합니다. 이 시도 :

$_SESSION['currFolder'] = dirname($_SERVER['PHP_SELF']); 

그런 다음 당신이 그것을 검색 할 수 있습니다 물론

$currFolder = $_SESSION['currFolder']; 

당신으로 session_start라고했는지 확인()는 $ _SESSION 변수를 사용하기 전에.

+0

빠른 답장을 보내 주셔서 감사합니다. 내 코드가 왜 작동하지 않는지 설명해 주시겠습니까? – Dane411

+1

@ Dane411, Location 헤더로 리디렉션하기 전에 변수를 설정하면 이전 설정을 모두 잃게됩니다. 위치 헤더는 새 페이지가 완전히 다시로드되도록합니다 (포함되지 않음). 따라서 이전 페이지에서 설정 한 변수는 리디렉션 후에 사라집니다. – davidethell

+0

스레드 항목에서 부모 폴더 스크립트를 사용한다는 사실은이를 공유하기 때문에 변경 사항은 한 번만 수행해야하므로 중복성을 피할 수 있습니다. 그러나 할당은 하위 디렉토리 인 index.php에 추가하면 작동합니다 (포함 된 파일에 추가하는 것처럼 최상위 폴더 (이 스크립트가 포함 된 폴더)가됩니다 ... 달성 할 수있는 방법이 있습니까? 그 할당은 함수 같은 것 또는 포함 된 파일에서 설정할 수 있습니까? – Dane411