将PHP重定向到登录页面,而不是强制登录
我为gameserver管理创建了一个小型php站点,但它并没有强制未登录的用户登录。我已经添加了一个重定向,如果会话不活动,并在注销时销毁了会话。网站就在这里将PHP重定向到登录页面,而不是强制登录,php,html,security,session,login,Php,Html,Security,Session,Login,我为gameserver管理创建了一个小型php站点,但它并没有强制未登录的用户登录。我已经添加了一个重定向,如果会话不活动,并在注销时销毁了会话。网站就在这里 它强制您第一次登录,但如果您将login.php从URL中删除,它将允许您再次进入主区域。任何帮助都将不胜感激,谢谢 您需要一个带有 $_SESSION['loggedin']==TRUE; 检查是否有人登录。 还考虑设置SeStIsIdId(),并重定向与此,以验证用户,您需要一个简单的机制: 所有页面都应该受到检查的保护,该检
它强制您第一次登录,但如果您将login.php从URL中删除,它将允许您再次进入主区域。任何帮助都将不胜感激,谢谢 您需要一个带有
$_SESSION['loggedin']==TRUE;
检查是否有人登录。
还考虑设置SeStIsIdId(),并重定向与此,
以验证用户,您需要一个简单的机制:
- 所有页面都应该受到检查的保护,该检查会查找某些会话值,如果该值不存在,则重定向到登录页面。您可以在单独的函数/文件中编写此检查的代码,并在站点的每个页面中调用/包含它
is_user_logged_in(){ return $_SESSION['logged_in']; // it is a boolean value, which should be set TRUE by the login function } //in every page of yours you should call this if ( !is_user_logged_in() ){ //redirect to you login page header("Location: http://yoursitename.com/login_page.php"); }
- 登录页面应验证用户名/密码,如果有效,则每隔一页创建要检查的会话值
if ( valid_user($username, $password) ){ // this is the value you should check for in other pages $_SESSION['logged_in'] = TRUE; // you may also need to store other user-related info in the session $_SESSION['user'] = array("id" => 1 , "username" => "test_user") // a data array from DB }
unset($_SESSION['logged_in']); session_destroy();
- 注销页面应该销毁您在其他页面中检查的会话值
if ( valid_user($username, $password) ){ // this is the value you should check for in other pages $_SESSION['logged_in'] = TRUE; // you may also need to store other user-related info in the session $_SESSION['user'] = array("id" => 1 , "username" => "test_user") // a data array from DB }
unset($_SESSION['logged_in']); session_destroy();
如果没有您的一些代码或您尝试过的内容(特定于代码),我们几乎无法帮助您。如果您在每个页面上都有会话+重定向codeCheck的会话,并显示一些您尝试过的与此相关的代码,这可能会有助于调试,因为你可能在某个地方搞砸了。虽然我尝试了你的url,我显然是自动登录的,但无法注销。肯定是出了问题。这太糟糕了,每个人都可以使用工具创建会话,所以只有loggedin=true才是验证登录的最不安全的方式……不!那是个误会。我刚才并没有说这些。