我爲使用會話的網頁編寫了代碼。我使用Mac並且工作正常。我在Windows上嘗試了我的頁面,會話似乎不起作用。事實證明,我聲明的會話變量不存在於其他頁面中。我在每一頁的開頭都使用了session_start()
。我讀到的關於這個問題的解決方案之一是使用session_write_close()
,但它不起作用。當我在$_SESSION
上使用var_dump()
時,我只能看到在同一頁面中聲明的那些(Mac和Windows都是這種情況)。在Windows和Mac上,我使用了Chrome。我之所以在Mac上工作的原因之一是因爲我沒有得到一個錯誤,但它在Windows上工作正常,但是我得到了錯誤,它說我使用的會話的索引是未定義的。會話無法正常工作
我的情況是什麼問題?我該如何解決它?
編輯:
這裏是在會話中設置變量的代碼,這是頁面
<?php
session_start();
session_destroy();
$_SESSION["contestant_name"]["topics_done"] = array(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); // topics done
$_SESSION["contestant_name"]["topics_score_correct"] = array();
$_SESSION["contestant_name"]["topics_score_wrong"] = array();
$_SESSION["contestant_name"]["correct"] = 0;
$_SESSION["contestant_name"]["wrong"] = 0;
?>
的第一個塊下面是用於讀取變量的代碼
<?php
session_start();
if (isset($_POST["submit"]))
$name = $_POST["name"];
if(!isset($_SESSION["contestant_name"]["name"]))
$_SESSION["contestant_name"]["name"] = $name;
// if ($_SESSION["contestant_name"]["name"] == "")
// $_SESSION["contestant_name"]["name"] = $name;
print $_SESSION["contestant_name"]["name"];
$arr = $_SESSION["contestant_name"]["topics_done"]; // getting it as null or empty
var_dump($_SESSION);
print count($arr);
print_r($arr);
?>
這裏是我試圖在將它們存儲在前一頁後使用會話變量的地方。
看看餅乾。 – SLaks
phpinfo()的會話部分是什麼? – frenus
你在localhost上運行這個嗎? –