2014-02-25 3 views
0

데이터베이스를 안전하게 액세스 할 수있는 PHP 클래스를 만들고, 신용 정보를 숨김으로부터 멀리 유지하려고합니다. 생성자의 일부로 웹 디렉토리 외부의 파일에서 내 자격 증명 배열을 만들고 있습니다. 불행히도 PHP에서 다른 함수를 사용하여 경로를 테스트하고 vim과 putty를 사용했지만 시도 할 때 같은 파일이나 디렉토리 오류가 계속 발생하지 않았습니다.file_get_contents 그런 파일이나 디렉토리가 없습니다. ph

오류가이

~/public_html/mysubdomain/projectDirectory/php/includes 

처럼 내 서버 lookls에이

$this->creds = explode("\n",file_get_contents("../../../../../private/mysqlinfo.ini")); 

폴더 구조처럼 내가

여기에있을 것입니다 액세스에 노력하고있어 파일을 보이는 원인 라인
~/private/mysqlinfo.ini 

동일한 디렉토리의 다음 기능은 디렉토리가 정확하고 mysqlinfo.ini 파일이 디렉토리에 존재 함

$dir = "../../../../../private"; 

if (is_dir($dir)) { 
    if ($dh = opendir($dir)) { 
     while(($file = readdir($dh)) !== false) { 
      echo "filename: $file || filetype: ". filetype($dir . $file) . "\n"; 
     } 
    } else { 
     echo "could not open directory"; 
    } 
} else { 
    echo "not a directory!"; 
} 

답변

2

이 문제는 상대 경로 대신 절대 경로를 사용하여 해결할 수 있습니다. PHP 스크립트에서 echo dirname(__FILE__);을 사용하여 항상 파일의 디렉토리에 대한 전체 경로를 인쇄 할 수 있습니다.

+0

나를 위해 일한 것은 마법 상수 \ _ \ _ DIR \ _ \ _ (PHP> = 5.3에서만 사용할 수 있으며 dirname (\ _ \ _ FILE \ _ \ _)과 동일 함)을 사용하는 것과 비슷합니다. –

+0

고마워요! 당신은 내 시간을 절약했습니다 :) –