2014-05-15 2 views
-1

내가 로그인 시스템을 만들고 싶어하지만,이 경우 내가 사용자 이름과 암호체크 배열의 키 배열 값

<?php 
$users = array(
"user1" => "pass" , 
"user2" => "2" , 
"user3" => "pass3d" 

); 

if (isset($_POST['sb'])) { 

$username = $_POST['user']; 
$password = $_POST['pass']; 
/* 
foreach ($users as $user => $pass) { 

    if ($username == $user && $password == $pass) { 
     echo 'login'; 
     header("Location: ?page=admin"); 
    } 
     else { 
     echo 'failed'; 
     $_SESSION = array(); 
     header("Location: ?dologin"); 

    } 

} 
*/ 
?> 

당신은 내가 데이터베이스를 사용하지 않는 볼 수있는만큼 배열을 만들려면, 내가 만들어 사용자 이름과 배열의 암호를 나는 foreach는

그것은 작업의 foreach과를 함께 할 수있는 좋은 생각이 아니다 로그인

을 위해 그것을 확인해야하지만 로그인이 실패한 경우 사용자가 제 3 회를 입력 한 경우 그래서, 세션을 파괴하려는 열쇠와 가치 sesseion 파괴 될 것이다!

은 내가 in_array를 사용하려하지만 난 사용자 이름 및 암호 처음에는 일반 텍스트로 그 암호를 저장하지 않을 들어

답변

1

을 비교하는 가장 좋은 방법이 무엇인지이

할 수 없습니다. 루프 어쩌면 가장 좋은 방법이 아니다, 나는 이런 식으로 뭔가 생각할 것이다 :

<?php 
$array1 = array(
"1" => "Monday", 
"2" => "Tuesday", 
"3" => "Wednesday" 
); 
?> 

우리는 주일의 처음 3 일이 배열이있다. 사용자가 1Monday에 주면 우리가 확인하고 싶다면 우리는이처럼 확인할 수 있습니다 :

<?php 
$var1 = $_POST['index']; 
$var2 = $_POST['day']; 

if (array_key_exists($var1, $array1))//if key exists in the array 
    { 
     if ($var2 == $array1[$var1])//if the day matches the value of the key in the array 
      { 
       //Do something 
      } 
    } 
?> 

참조 : http://php.net/manual/en/function.array-key-exists.php