因此,更多的細節..
我創建通過一系列的頁面去一個網站,每個後續頁面使用從其之前的頁面發佈的信息設置不同的$_SESSION
變量。第一個頁面在第一個頁面之後設置了一個不同的$ _SESSION變量,該變量在該頁面上用於查詢數據庫以瞭解要呈現的信息。然後,在3個左右的頁面之後,所有這些不同的$ _SESSION變量一起使用來查詢數據庫以獲取匹配的記錄。
我的問題是,每個後續頁面上,在$ _SESSION變量將設置完全正常,但是當我進入下一個頁面,從之前的同一$ _SESSION變量,將被設置爲null ..
事情讓我非常困惑的是,這隻發生在我使用的託管服務器上。該網站按預期在我的本地主機上運行(如果有問題,我使用wampserver),並且代碼在兩者上都完全相同。
Page 1
這是在頁面頂部。我把「unset()」放在那裏以清空網站開始處的數據。
<?php
session_start();
unset($_SESSION['brand']);
unset($_SESSION['model']);
unset($_SESSION['carrier']);
unset($_SESSION['size']);
?>
郵政是頁面的中間附近
<div id="select">
<a href="models/page2.php?brand=a" onclick="post"><img src="images/a.png" id="a"/></a>
<a href="models/page2.php?brand=b" onclick="post"><img src="images/b.png" id="b"/></a>
</div>
第2頁
這是在頁面
<?php
session_start();
if(isset($_SESSION['brand']))
{
$brand = $_SESSION['brand'];
}
else
{
$_SESSION['brand'] = $_GET['brand'];
$brand = $_SESSION['brand'];
}
include('../connection/localconnection.php');
$query = "SELECT DISTINCT Model FROM models WHERE brand = '$brand'";
$result = $dbc->query($query);
if(!$result){
echo "DB error. Could not query database\n";
echo 'MySQL error: ' . mysql_error();
exit;
}
?>
這篇文章的頂部向中部這一頁。我也echo $_SESSION['brand']
,以確保它仍然設置。
<form action="../options/page3.php" method="post">
<?php
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result))
{
echo "<input type=\"submit\" id=\"c\" name=\"model\" value=\"{$row['Model']}\"/>";
}
} else {
echo "Query didn't return any result";
}
echo $_SESSION['brand'];
?>
</form>
這工作完全正常的服務器上,我可以看到$ _SESSION [「品牌」]設置完全按照它應該是。
但是,在page3.php
的底部我再次echo $_SESSION['brand']
,它被設置爲空,所以我知道$_SESSION
變量仍然存在,它只是空的權利?
這種情況發生在每一頁上,我不明白爲什麼。我不是最大的PHP,但我理解一個體面的金額,並完全難住爲什麼這隻會發生在我的託管服務器上,而不是我的本地主機。任何幫助將不勝感激。
它可能是在託管服務器上的php.ini。您可能需要在代碼中使用'SID'才能使其工作。檢查這裏的文檔:http://php.net/manual/en/session.constants.php – nomistic 2015-04-04 00:19:04
它可以在第2頁break_ session到session_statt嗎? – 2015-04-04 00:25:26