如何设置或取消设置当前PHP会话

时间:2012-07-17 19:46:59

标签: php session login

我的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上运行的所有其他项目退出,他就直接登录,甚至没有这样做。

3 个答案:

答案 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)

  1. 请记住包含session_start();在每个页面的顶部通过$ _SESSION ['example']获取SESSION中变量SET的值,否则你将无法获得会话变量值, OR

    1. 另一种方法是使用session_start();在config.php文件中,并将该文件包含在需要会话的每个页面的代码顶部,否则U将无法获取SESSION变量的值.. !!