2016-09-10 5 views
0

管理者とユーザーページを作成したいだけですが、URLアドレスを知るだけでページに移動できます。管理者とユーザーを作成するにはどうすればいいですか

<?php 
include './connect.php'; 
if (($_SERVER["REQUEST_METHOD"] == "POST") && (!empty($_POST['username'])) && (!empty($_POST['password']))) { 
$postedUsername = $_POST['username']; 
$postedPassword = $_POST['password']; 
$userDatabaseFind = $database->login->findOne(array('username' => $postedUsername, 'password' => $postedPassword)); 
$storedUsername = $userDatabaseFind['username']; 
$storedPassword = $userDatabaseFind['password']; 

if (($postedUsername == $storedUsername) && ($postedPassword == $storedPassword)) { 
    header('location:searchDetail.php'); 
} else { 
    echo 'Error'; 
} 
} 
?> 

私のHTMLコードを

<html> 
<head> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
    <style> 
     #page-wrapper{ 
      width: 400px; 
      margin: auto; 
     } 
     input[type="text"] { 
      width: 450px; 
     } 
     input[type="password"]{ 
      width: 450px; 
     } 
     body{ 
      background-image: url(images/image2.jpg); 
     } 
    </style> 
</head> 
<body> 
    <form class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"> 
     <fieldset> 
      <legend>Signin Form</legend> 
      <div id="page-wrapper"> 
       <div class="form-group"> 
        <label for="inputEmail" class="col-lg-2 control-label">Username</label> 
        <div class="col-lg-10"> 
         <input type="text" class="form-control" id="inputEmail" placeholder="Username" name="username" > 
        </div> 
       </div> 
       <div class="form-group"> 
        <label for="inputPassword" class="col-lg-2 control-label">Password</label> 
        <div class="col-lg-10"> 
         <input type="password" class="form-control" id="inputPassword" placeholder="Password" name="password"> 
        </div> 
       </div> 
       <button type="submit" class="btn btn-success" name="button">Submit</button> 
      </div> 
     </fieldset> 
    </form> 

</body> 

PS-してくださいパスワードのセキュリティに

を言及していない変更されたコードである:あなたのデータベースで

<?php 
include './connect.php'; 
session_start(); 
if (($_SERVER["REQUEST_METHOD"] == "POST") && (!empty($_POST['username'])) && (!empty($_POST['password']))) { 
$postedUsername = $_POST['username']; 
$postedPassword = $_POST['password']; 
$userDatabaseFind = $database->login->findOne(array('username' => $postedUsername, 'password' => $postedPassword)); 
$storedUsername = $userDatabaseFind['username']; 
$storedPassword = $userDatabaseFind['password']; 

if (($postedUsername == $storedUsername) && ($postedPassword == $storedPassword)) { 
    $_SESSION['username'] = $storedUsername; 
    if($_SESSION['username'] == 'admin'){ 
     header('location:searchDetail.php'); 
    } 
    else{ 
     echo 'Hello world'; 
    } 

} else { 
    echo 'Error'; 
} 
} 
?> 
+0

一つの可能​​な解決策を助けるsearchDetailadmin.php

if($_SESSION['userlevel'] != 1){ header('location:searchDetail.php'); }
希望に以下のコードを使用して、管理ページになってから、通常のユーザーを制限するにはgovにセッション変数を使用することですどのユーザーのレベルが特定のページにアクセスできるか - ユーザーがログインすると関連情報をセッション変数に割り当てます。セッション変数のチェックメカニズムによって保護されているページに移動し、それらがアクセスするための要件を満たしている場合は、アクセスされます。そうでなければ、リダイレクトされます。 – RamRaider

+0

[PHPでの管理者/ユーザーログインシステムの作成](http://stackoverflow.com/questions/17249973/creating-admin-user-login-system-in-php)の可能な複製 – DanMan

答えて

0

私はあなたがディ管理者と通常のユーザーの間を移動します。 user levelの列を持つことができます。管理者はユーザーレベルが1で、通常のユーザーはユーザーレベルが0になります。

これをあなたのコードで変更してください。

$storedUsername = $userDatabaseFind['username']; 
 
$storedPassword = $userDatabaseFind['password']; 
 
$storesuserlevel = $userDatabaseFind['userlevel']; 
 

 
//Admin page 
 

 
if (($postedUsername == $storedUsername) && ($postedPassword == $storedPassword) && $storesuserlevel == 1) { 
 
    $_SESSION['username'] = $postedUsername; 
 
    $_SESSION['userlevel'] = '1'; 
 
    header('location:searchDetailadmin.php');// only accessed by the admin 
 
} else { 
 
    echo 'Error'; 
 
} 
 

 
// Normal user 
 

 
if (($postedUsername == $storedUsername) && ($postedPassword == $storedPassword) && $storesuserlevel >= 0) { 
 
    $_SESSION['username'] = $postedUsername; 
 
    $_SESSION['userlevel'] = '0'; 
 
    header('location:searchDetail.php');// only accessed by both admin and user 
 
} else { 
 
    echo 'Error'; 
 
}

これは

関連する問題