单击其他站点后,php丢失了$\u会话值

单击其他站点后,php丢失了$\u会话值,php,session,Php,Session,我有一个方法,其中我(两次)访问此值: $_SESSION['loggedinUser']; 第一次工作正常,但第二次该值已丢失 public function View($view, $model) { if (! isset($_POST['regist']) && ! isset($_POST['back']) && ! isset($_POST['login']) &

我有一个方法,其中我(两次)访问此值:

$_SESSION['loggedinUser'];
第一次工作正常,但第二次该值已丢失

 public function View($view, $model) {
    if (! isset($_POST['regist'])
            && ! isset($_POST['back'])
            && ! isset($_POST['login'])
            && ! isset($_GET['logout'])
            && ! isset($_GET['note_list'])
            && ! isset($_GET['file_list'])
            && ! isset($_GET['profile'])
            && ! isset($_GET['action'])) {       // LOGIN VIEW
        $view->login();
    }

    if (isset($_POST['regist'])) {               // REGIST
        $view->regist();
    }

    if (isset($_POST['back'])){                  // BACK
        $view->login();
    }

    if (isset($_POST['login'])) {                //LOGIN AND LOGGED IN VIEW
        $username = $_POST['user_name'];
        $pw = $_POST['pw'];

        if ($model->checLoginstatus($username, $pw) == true) {
            $id = $_SESSION['loggedInUser'];    // session is working fine
            session_start();
            $fname = $model->getNameToSession("user", "id", $id, 'firstname');
            $lname = $model->getNameToSession("user", "id", $id, 'lastname');
            echo "" . var_dump($id);
            $view->LoggedIn($fname . " " . $lname, null);
        }
    }

    switch ($_GET['action']) {
        case 'note_list':
            session_start();
            $id = $_SESSION['loggedInUser'];  // session gives back NULL

            $title = $model->getNameToSession("note", "user_id", $id, 'title');
            echo "" . var_dump($_SESSION['loggedInUser']);
            echo "" . var_dump($title);
            echo "<a href='#'>" . $title . "</a>";
            break;
        case 'logout':
            session_start();
            session_unset();
            session_destroy();
            header("Location:/");
            break;
    }
}
公共功能视图($View,$model){
如果(!isset($_POST['regist']))
&&!isset($\u POST['back'])
&&!isset($\u POST['login']))
&&!isset($\u获取['logout'])
&&!isset($\u获取['note\u list'])
&&!isset($\u GET['file\u list'])
&&!isset($\u获取['profile'])
&&!isset($\u GET['action']){//登录视图
$view->login();
}
if(isset($\u POST['regist'])){//regist
$view->regist();
}
如果(isset($_POST['back']){//back
$view->login();
}
如果(isset($_POST['login']){//login和LOGGED IN VIEW
$username=$\u POST['user\u name'];
$pw=$_POST['pw'];
如果($model->checLoginstatus($username,$pw)==true){
$id=$_会话['loggedInUser'];//会话工作正常
会话_start();
$fname=$model->getNameToSession(“用户”、“id”、“id”、“firstname”);
$lname=$model->getNameToSession(“用户”、“id”、“id”、“lastname”);
echo“.var_dump($id);
$view->LoggedIn($fname.“$lname,null);
}
}
开关($\u GET['action'])){
案例“注释列表”:
会话_start();
$id=$\u会话['loggedInUser'];//会话返回NULL
$title=$model->getNameToSession(“注意”,“用户id”,“title”);
echo'.var_dump($_会话['loggedInUser']);
回音“.var_转储($title);
回声“;
打破
“注销”案例:
会话_start();
session_unset();
会话_destroy();
标题(“位置:/”;
打破
}
}

值丢失是我做错了什么?

您应该在文档顶部包含
会话\u start()

<?php
session_start();

// rest of your code goes here

?>


如果没有
session\u start()
您之前设置的
$\u session
变量将不会转移到此页面。

是否在第二次请求时($\u GET['action']=='note\u list')在任何输出之前,您的
session\u start()
应该位于文档顶部。首先定义会话变量,然后使用
session_start()那不行,我的朋友。@非常感谢你,伙计,这是工作!