2014-02-06 3 views
0

그래서 MySQL을 사용하지 않고 로그인 스크립트를 설정하려고합니다. 전혀 경험이 없기 때문에 1 년 동안 기다려야 만 로그인 할 수 있습니다. 우리 학교의 코스. 이 접근의MySQL이없는 PHP 로그인 시스템

내 생각 :

사용자는 사용자 이름과 초대 키를 사용하여 로그인 할 필요가있다. 나는 .txt (나는 그것이 지옥과 같이 안전하지는 않지만 무엇이든간에) 사용자 명과 수락 된 사람의 초대 키가 저장되는 장소를 갖고 싶습니다. PHP 스크립트는 보낸 인증서와 .txt에 저장된 인증서를 비교합니다. 일치하면 로그인하고, 그렇지 않으면 중단됩니다.

그렇다면 어떻게 .txt에서 데이터를 읽을 수 있으며 내 스크립트가 사용자 이름과 초대 키간에 다를 수 있도록 .txt 형식을 어떻게 지정할 수 있습니까?

는 여기에 지금까지있어 무엇 :

if(isset($_POST['auth']) && $_SERVER['REQUEST_METHOD'] == 'POST'){ 

    session_start(); 

    $usr=$_POST['user']; 
    $invkey=$_POST['key']; 

    function authenticate($usr, $invkey){ 

    } 
} 

사전에 감사!

추신 : 나는 이것이 매우 안전하지 않을 거라는 것을 알고 있습니다. 그래서 지루하면 당신이 어떻게 그것을 확보 할 수 있는지에 대한 조언을 줄 수 있습니다. :)

+0

안전하게 사용하십시오.htaccess 및 텍스트 파일에서 읽는 것은 인터넷에서 검색하려고 시도하는 아주 기본적인 것입니다. –

+0

이 자료를 저장하려면 올바른 형식의 CSV 파일을 권하고 싶습니다. – MonkeyZeus

답변

0

사용자 이름과 키를 한 줄에 하나의 줄에 하나의 txt 파일로 보관할 수 있습니다.

if(isset($_POST['auth']) && $_SERVER['REQUEST_METHOD'] == 'POST'){ 

    session_start(); 

    $usr=$_POST['user']; 
    $invkey=$_POST['key']; 

    function authenticate($usr, $invkey){ 
     $fh = fopen('auth.txt', 'r'); 
     if ($handle) { 
      while (($line = fgets($handle)) !== false) { 
      // Exploding the line, using | as separator. 
      $info = explode($line, '|'); 
      $username = $info[0]; 
      $key = $info[1]; 
      if($usr == $username && $key == $invkey) return true; 
      } 
     } else { 
     // error opening the file. 
     } 
     // Return false because something went wrong or data wasn't correct. 
     return false; 
    } 
} 
0

당신은

user1,key1 
user2,key2 

후 사용 같은 일반 csv 파일을 사용할 수

user1|user1_inv_key 
user2|user2_inv_key 
... 

그래서 당신은 fgets()explode()

귀하의 코드는 다음과 같아야을 사용할 수 있습니다 그것을 파싱하는 str_getcsv 함수.

자세한 내용은 http://php.net/manual/de/function.str-getcsv.php을 참조하십시오.

0

그런 다음 각 사용자, 또는 새로운 라인 또는 무언가에 대한 구분에 따라 $ txt_file을 폭발 할 수

$txt_file = file_get_contents('path/to/file.txt'); 

같이해야 할 것이다. 그런 다음 고정하려면 MD5처럼 하나의 방법 해시의 제품으로 사용자의 암호를 절약 할 수

file_put_contents("path/to/file.txt", $user_string, FILE_APPEND); 

같은 것을 사용하여 파일에 새 사용자를 추가 할 수 있습니다.

$salt = 'whatever you want'; 
$securish_pw = md5($password.$salt); 

그런 다음 저장하십시오. 그런 다음 누군가가 로그인하고 txt 파일에서 해당 줄을 찾은 다음 동일한 md5 기능을 통해 비교 된 암호를 입력하고 동일한 경우 해당 암호를 기록합니다. 이렇게하면 일반 텍스트 암호를 저장하지 않습니다.

모두가 말했듯이, 당신은 데이터베이스를 사용하는 방법에 대해 조금 배워야합니다. PHP의 PDO 라이브러리를 사용하면 매우 간단합니다. 수행하려는 작업을 정확히 수행하는 방법을 설명하는 설명서가 하나 뿐인 자습서가 있습니다.