2个管理员的登录区域

时间:2011-07-29 21:07:52

标签: php session passwords username

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

     $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吗?感谢。

2 个答案:

答案 0 :(得分:1)

如果您担心安全性,则不应将密码以纯文本形式放在源文件或外部文件中。更好的方法是散列密码并存储在数据库中。

答案 1 :(得分: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
}

但是我会把这些东西存放在数据库中。