我为一个用户设置了登录信息,但我希望使用相同的登录页面为管理员添加额外的登录信息。管理员将能够访问用户可以访问的所有页面,还可以访问其他一些页面。我想知道是否有人可以向我解释如何做到这一点。感谢。
的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");
}
?>
答案 0 :(得分:0)
正确的方法是为管理员保留单独的文件。管理员意味着管理网站上的内容并拥有私人网址。因此,在最佳实践中,您可以创建另一个文件夹,例如&#34; admin-cp&#34; ,并将所有与admin相关的页面放在那里。
但在您的情况下,您可以在会话中保存一个标记,告诉您用户是普通用户还是管理员用户,并根据该标记显示链接或您用于管理员的任何访问方式。同样在那些页面上,检查用户是否是管理员,然后确定,否则将用户重定向到主页或其他页面(如果已插入)。标志可以像&#34; isAdmin&#34;值为1或0。
答案 1 :(得分:0)
你的方式不安全。始终将管理文件分开。我建议你制作一个插件域并将所有与管理员相关的文件放在那里。
要回答你的问题,只需在sql表中添加另一个字段,该字段说明用户的级别。检查用户级别,然后显示要显示的内容。使用if条件检查级别并相应地显示链接,数据。
此外,在仅限管理员页面的视图上,检查用户是否为admin。如果不是退出主页