我的脚本有点问题,我需要一些帮助。
所以问题是:当用户登录时,他们仍然可以再次打开登录页面。
这是我的剧本。的 function.php
function is_admin ($login, $password)
{
if ($login == ADMIN_LOGIN && $password == ADMIN_PASSWORD)
{
return true;
}
else
{
setcookie('login', $login, $realtime+24*7, '/');
setcookie('pass', md5($password), $realtime+24*7, '/');
return false;
}
}
$admin = is_admin($_COOKIE['login'], $_COOKIE['pass']);
这是 index.php
if(!$admin && $_SERVER['PHP_SELF'] != '/cp/login.php'){
header('location: /cp/login');
}else
header('location: /cp');
}
ob_start();
这样,所有页面都会重定向到登录,当用户未登录时,但登录后,我可以打开页面/cp/login
当用户已登录时,我希望登录页面重定向到/cp
。
上面的问题在哪里?
答案 0 :(得分:0)
您需要为登录用户启动会话,并传递有关页面的内容,不要使用cookie。这样您就可以知道用户是否已登录,以及是否适合他们查看页面上的某些内容。
在每页放置的顶部(在任何之前):
<?php
session_start();
然后,当您成功验证它们时,请设置会话变量。
// when authenticated
$_SESSION['username'] = $user->getUsername(); // or whatever you want
然后在每个页面上,您需要知道他们是否已登录:
if(isset($_SESSION['username']) {
// do something, render something, whatever.
}
将其注销
session_destroy();
PHP_SELF
。 see here crypt()
。