我的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上打开,如果用户打开一些其他没有链接的项目如果他从一个项目退出,他从该PC上运行的所有其他项目退出,他就直接登录,甚至没有这样做。
答案 0 :(得分:6)
试试这个:
<?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');
}
?>
在回复上述评论时,是的,您应该在用户登录时创建会话变量。编辑代码以反映它。
答案 1 :(得分:2)
您希望检查特定的会话值,而不是会话的存在..
if ($_SESSION['logged_in']==1){
//
}else{
//
}
登录时将$ _SESSION ['logged_in']设置为1并在注销时取消设置(或将其设置为0)
答案 2 :(得分:0)