0
我有一個方法,我在其中(兩次)訪問該值:
$_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;
}
}
我在做什麼錯,價值是失去了什麼?
對第二個請求做了'($ _GET ['action'] =='note_list')'嗎? – Mike
''session_start()'應該在文檔的頂部,在任何輸出之前。你是第一次定義你的會話變量,並且在你使用session_start()之後;'這不起作用,我的朋友。 – entiendoNull
@entiendoNull非常感謝你,這是工作! – Bbeni