如何检查当前PHP会话设置或取消设置
在我的php项目中,我想检查登录页面会话的状态。如果未设置,我希望用户登录。 我已将此代码添加到登录页面,但由于它循环,因此没有任何帮助如何检查当前PHP会话设置或取消设置,php,session,login,Php,Session,Login,在我的php项目中,我想检查登录页面会话的状态。如果未设置,我希望用户登录。 我已将此代码添加到登录页面,但由于它循环,因此没有任何帮助 if (strlen(session_id()) < 1) { ?> <script>window.location.href="login.php";</script> <?php } elseif(strlen(session_id()) > 1){ ?>
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');
}
?>
在回答上述评论时,您应该在用户登录时创建一个会话变量。编辑代码以反映它。尝试以下操作:
<?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{
//
}
登录时将$\u SESSION['logged\u in']设置为1,注销时将其取消设置或将其设置为0要检查的是特定会话值,而不是会话的存在
if ($_SESSION['logged_in']==1){
//
}else{
//
}
登录时将$\u会话['logged\u in']设置为1,注销时将其取消设置或设置为0
记住包括会话启动;在每个页面的顶部,通过$_SESSION['example']获取会话中设置的变量值,否则您将无法获取会话变量值,
或
另一种方法是使用session_start;在config.php文件中,并在需要会话的每个页面的代码顶部包含该文件,否则您将无法获取会话变量的值。。!!
记住包括会话启动;在每个页面的顶部,通过$_SESSION['example']获取会话中设置的变量值,否则您将无法获取会话变量值,
或
另一种方法是使用session_start;在config.php文件中,并在需要会话的每个页面的代码顶部包含该文件,否则您将无法获取会话变量的值。。!!
您要检查的是特定的会话值,而不是会话的存在。。如果$_SESSION['logged_in']==1…k.那么在初始登录时,我应该将logged_in=1,然后在登录页面上比较它,并在注销时清空它。??这就是它的主要操作方式-发布为下面的答案,以便您可以接受它或不接受它。您想检查特定的会话值,而不是会话的存在。。如果$_SESSION['logged_in']==1…那么在初次登录时,我应该设置logged_in=1,然后在登录页面上比较它,并在注销时清空它。??这就是它的主要工作方式-发布为下面的答案,这样,如果我使用php的标题'Location:/login.php',您可以接受它,也可以不接受它;它的nt重定向正确,如果我使用JavaScript window.location,它将再次循环。使用标头时是否会出错?你能发布你的完整代码吗?firefox向我展示了这一点,页面没有正确重定向。但是标题的东西对我的其他项目正常工作。下面是我的html登录页面。dude如果登录=1,工作正常,但不会重定向到else循环。还有我的注销页面作为此窗口。location.href=login.php;如果我使用php的标题'Location:/login.php',这会导致任何问题吗;它的nt重定向正确,如果我使用JavaScript window.location,它将再次循环。使用标头时是否会出错?你能发布你的完整代码吗?firefox向我展示了这一点,页面没有正确重定向。但是标题的东西对我的其他项目正常工作。下面是我的html登录页面。dude如果登录=1,工作正常,但不会重定向到else循环。还有我的注销页面作为此窗口。location.href=login.php;这会引起什么问题吗