2016-09-10 1 views
0

Ich möchte Admin-und Benutzer-Seite erstellen, aber nur durch die Kenntnis der URL-Adresse können sie zu jeder Seite navigieren.Wie kann ich den Seitenzugriff einschränken?Wie sollte ich Admin und Benutzer erstellen

<?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'; 
} 
} 
?> 

Mein HTML-Code ist

<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-Bitte erwähnen Sie das Passwort nicht Sicherheit

Modified Code:

<?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

Eine mögliche Lösung helfen wäre eine Sitzungsvariable zu gov zu verwenden Welche Benutzerstufe kann auf bestimmte Seiten zugreifen - Wenn sich der Benutzer anmeldet, weisen Sie der Sitzungsvariablen die relevanten Informationen zu. Wenn sie zu einer Seite navigieren, die durch den Sitzungsvariablenüberprüfungsmechanismus geschützt ist, und sie die Anforderungen erfüllen, auf die sie zugreifen, werden sie andernfalls umgeleitet. – RamRaider

+0

Mögliches Duplikat von [Creating Admin/User Anmeldesystem in PHP] (http://stackoverflow.com/questions/17249973/creating-admin-user-login-system-in-php) – DanMan

Antwort

0

in Ihrer Datenbank Ich nehme an, du kannst di zwischen Admin und einem normalen Benutzer unterscheiden. Sie können eine Spalte mit user level haben. Nehmen wir an, der Administrator hat die Benutzerstufe 1 und der normale Benutzer hat die Benutzerstufe 0.

Jetzt ändern Sie dies in Ihrem Code.

$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'; 
 
}

Um einen normalen Benutzer davon ab, in der Admin-Seite verwenden Sie den Code unten in searchDetailadmin.php

if($_SESSION['userlevel'] != 1){ 
 
header('location:searchDetail.php'); 
 
}
Hoffnung zu beschränken diese

Verwandte Themen