2011-07-29 104 views
0

我和我的一个朋友正在开发一些网站,我们需要两个都可以登录的自定义管理面板。2个管理员的登录区域

 $username=array(); 
      $pass=array(); 
      $username[0]='user1'; 
      $username[1]='user2'; 
      $pass[0]='pass1'; 
      $pass[1]='pass2'; 

      if (isset($_POST['password']) && isset($_POST['userName'])) { 
if($_POST['password']==$pass[0] && $_POST['userName']==$username[0] 
|| $_POST['password']==$pass[1] && $_POST['userName']==$username[1]) 
       { 
        if (!session_id()) 
         session_start(); 
         $_SESSION['logon'] = true; 
         $_SESSION['userName'] = $userName; 
         header('Location: admin.php'); 
         die(); 
       } 
      } 

我敢肯定有一些更好的方式登录2人,这段代码是否安全,足够好用于管理员登录?我不想将4个变量放在数据库中,因此将这些变量放在localhost/server之外的txt文件中并使用include是个好主意?谢谢。

回答

1

简单的用户名和密码存储在一个这样的数组:

$users = array('user1' => 'pass1', 'user2' => 'pass2'); 
if(array_key_exists($_POST['userName'], $users)) 
{ 
    if($users[$_POST['userName']] == $_POST['password']) 
    { 
     // Username and password correct 
    } 
    else 
    { 
     // Password incorrect 
    } 
} 
else 
{ 
    // Username incorrect 
} 

但是我想这些东西存储在数据库中。

+0

如果两个后变量都是空白的,这肯定不会达到期望的结果? – symcbean

+0

由于数组中没有空键,并且没有空值的键,所以不应该有任何问题。 – Sylence

+0

试试吧。 “” === “” – symcbean

1

如果您担心安全问题,那么您不应该在源文件或外部文件中以纯文本格式输入密码。更好的方法是散列密码并存储在数据库中。

+0

谢谢。以及如何创建2人登录,而不使用这个巨大的如果运算符 – George