登录两种类型的用户,如客户和管理员


Login for two types of users e.g customer and admin

我有一个登录设置为一个用户,但我希望在一个管理员使用相同的登录页面添加一个额外的登录。管理员将能够访问用户可以访问的所有页面,还可以访问一些额外的页面。我想知道有没有人能告诉我怎么做。谢谢。

login。

session_start();
$usr = new Users;
$usr->storeFormValues( $_POST );
if( $usr->userLogin() ) {
header( 'Location: /user/' ) ;
$_SESSION["loggedIn"] = true;
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
} else {
echo '<center>'."<font color='red'>Sorry, Incorrect Username or Password <br> Please Try Again </br> </font>".'</center>';
}
}

Response.php

<?php
    //set off all error for security purposes
    error_reporting(E_ALL);

    //define some contstant
    define( "DB_DSN", "mysql:host=localhost;dbname=dbname1" );
    define( "DB_USERNAME", "" );
    define( "DB_PASSWORD", "" );
    define( "CLS_PATH", "class" );
    //include the classes
    include_once( CLS_PATH . "/user.php" );

?>

每页顶部:

<?php
session_start();
// redirects to user to the login.php page if user is not logged in
if (!isset($_SESSION['loggedIn'])){
header("location:  /login.php"); 
}
?>

你的路不安全。始终将管理文件分开。我建议你做一个附加域,并把所有的管理相关的文件。

要回答您的问题,只需在sql表中添加另一个字段,该字段说明用户的级别。检查用户级别,然后显示想要显示的内容。使用if条件检查级别并相应地显示链接和数据。

还可以在只有admin的页面上查看用户是否为admin。如果不是,则退出到主页

正确的方法是为管理员保留单独的文件。管理员意味着要管理网站上的内容,并有一个私人网址。因此,在最佳实践中,您可以创建另一个文件夹,例如"admin-cp",并将所有与admin相关的页面放在其中。

但是在你的情况下,你可以在会话中保存一个标志,它将告诉你用户是普通用户还是管理员用户,并基于该标志,显示链接或任何你为管理员使用的访问方式。同样在这些页面上,检查用户是否为admin,然后确定,否则将用户重定向到主页或其他页面(如果登录)。标志可以像"isAdmin"一样,值为1或0。