[英]How Check current PHP session set or unset
伙计们在我的php项目中,我想检查登录页面会话的状态。如果未设置,我希望用户登录。 我已经将此代码添加到登录页面,但由于循环而无济于事。
if (strlen(session_id()) < 1) {
?>
<script>window.location.href="login.php";</script>
<?php
}
elseif(strlen(session_id()) > 1){
?>
<script>window.location.href="index.php";</script>
<?php
}
现在我想要的另一件事是,如果会话已经开始,并且如果用户手动尝试从地址栏进入登录页面,则应将其重定向回该当前页面。
如果他未登录,则如果他尝试直接打开任何页面,则应将其重定向回登录页面。
还有一个新的疑问是
伙计们们正在使用wamp服务器来运行我的PHP项目。我已经在项目中使用了PHP会话,现在当用户从一个项目登录时,会话将被设置;如果在同一台PC上,如果用户打开了彼此不链接的其他项目,如果他从一个项目中注销,则他甚至直接从该计算机上运行的所有其他项目中注销。
尝试这个:
<?php
session_start();
if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == 1) {
//session is set
header('Location: /index.php');
} else if(!isset($_SESSION['logged_in']) || (isset($_SESION['logged_in']) && $_SESSION['logged_in'] == 0)){
//session is not set
header('Location: /login.php');
}
?>
作为对以上评论的答复,是的,您应该在用户登录时创建一个会话变量。编辑代码以反映该变量。
您想检查特定的会话值,而不是会话的存在。
if ($_SESSION['logged_in']==1){
//
}else{
//
}
在登录时将$ _SESSION ['logged_in']设置为1,在注销时将其取消设置(或将其设置为0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.