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

时间:2014-03-26 20:49:50

标签: php login

我为一个用户设置了登录信息,但我希望使用相同的登录页面为管理员添加额外的登录信息。管理员将能够访问用户可以访问的所有页面,还可以访问其他一些页面。我想知道是否有人可以向我解释如何做到这一点。感谢。

的login.php

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"); 
}
?>

2 个答案:

答案 0 :(得分:0)

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

但在您的情况下,您可以在会话中保存一个标记,告诉您用户是普通用户还是管理员用户,并根据该标记显示链接或您用于管理员的任何访问方式。同样在那些页面上,检查用户是否是管理员,然后确定,否则将用户重定向到主页或其他页面(如果已插入)。标志可以像&#34; isAdmin&#34;值为1或0。

答案 1 :(得分:0)

你的方式不安全。始终将管理文件分开。我建议你制作一个插件域并将所有与管理员相关的文件放在那里。

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

此外,在仅限管理员页面的视图上,检查用户是否为admin。如果不是退出主页