2014-07-22 3 views
-1

다음 스크립트는 암호를 해시하고 해시하는 데 사용되며 데이터베이스에 암호를 삽입하는 또 다른 방법이 있습니다. 내가 얻을 스크립트가 작동하지 않는 이유를 이해가 안클래스에 require_once가 작동하지 않습니까?

PHP Warning: require_once(./Database.php): failed to open stream: No such file or directory in /var/www/mate8/helpers/Register.php on line 3 

PHP Fatal error: require_once(): Failed opening required './Database.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/mate8/helpers/Register.php on line 3 

를 다음 실행하면

<?php 

require_once "./Database.php"; 

class Register { 

    function saltHashPassword($password) { 
     $hashAndSalt = password_hash($password, PASSWORD_BCRYPT); 

     return $hashAndSalt; 
    } 

    function insertNewMember($username, $password) { 
     $database = new Database(); 
     $database->insertNewMember($username, $password); 
    } 
} 

방법이 파일

<?php 

require_once "./helpers/Register.php"; 

$regiter = new Register(); 
$saltAndHashedPassword = $regiter->saltHashPassword("dfgsdfg"); 
$regiter->insertNewMember("testuser", $saltAndHashedPassword); 
?> 

에 의해 호출된다. 파일에 올바른 경로가 있습니다. 내가 여기 실수로 어떤 생각을 했니? 이 라인에 의해 묵시적으로 Register.phphelpers 디렉토리에 있기 때문에

Database.php 및 Register.php 모두 같은 폴더에 "헬퍼"

+0

파일 권한? –

답변

0

있습니다

require_once "./helpers/Register.php"; 

그리고 Database.php는 헬퍼에없는 디렉토리

require_once "./Database.php"; 

암시대로을 찾기 위해 Register.php의 경로를 변경해야 위의3210 디렉토리와 같이

require_once "../Database.php"; 
+0

Database.php도 도우미 폴더에 있습니다 – Arya

+0

그 다음에는 'require_once "./helpers/Database.php";' –

+0

이 맞습니다. 그것은 효과가 있었다. 호출 스크립트가 Register.php를 가져 오기 때문입니까? 이 일을 수행하는 다른 방법이 없으므로 누가 도우미 클래스를 부르는지는 중요하지 않습니다. – Arya

관련 문제