2011-07-29 5 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

ありがとうございました。この巨大なif演算子を使用せずに2人のユーザーのログインを作成する方法 – George

関連する問題