1 回答
TA贡献1946条经验 获得超3个赞
这完全取决于您想要实现的目标。如今,很容易使用一些框架或微框架来覆盖引擎盖下的一些基本内容,这使您不必再次重新创建自行车。这就是你获得优势的地方。在你的情况下,如果这是一个模板项目,我会这样做:
项目根目录/index.php
...
if (isset($_POST['btnLogOn'])) {
...//get find user if exist
$domain = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
if ($row && password_verify($password, $row['password'])) {
if (isset($_POST['remember'])) {
setcookie('email', $email, time() + 60 * 60 * 7);
setcookie('password', $password, time() + 60 * 60 * 7);
}
$_SESSION['user_session'] = $row['user_id'];
$_SESSION['user_role'] = $row['role'];
switch($_SESSION['user_role']){
case 'Admin':
$dir = 'admin';
break;
case 'Advisor':
$dir = 'advisor';
break;
case 'Tech':
$dir = 'tech';
break;
case 'User':
$dir = 'dashboard';
break;
default:
$dir = 'index.php';
}
header( 'Location: ' . $domain . DIRECTORY_SEPARATOR . $dir);
}
}
...
和这里:
根目录/admin/index.php
$domain = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
//check if user exist it is admin
if(!isset($_SESSION['user_session']) || (isset($_SESSION['user_role']) && $_SESSION['user_role'] != 'admin')){
//it is not, redirect
header( 'Location: ' . $domain . DIRECTORY_SEPARATOR . 'index.php');
}
但它应该更加安全。因为现在这段代码对攻击者开放。
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报