1 回答

TA貢獻1877條經(jīng)驗 獲得超6個贊
除非您沒有在答案中顯示任何內(nèi)容,否則您實際上并沒有做任何事情來保存會話數(shù)據(jù)。
...
while($row = mysqli_fetch_assoc($resultsThree)){
$username = $_SESSION['username'];
$level = $row['level'];
$money = $row['money'];
$diamond = $row['diamond'];
$ruby = $row['rubin'];
}
header('location: index2.php');
...
在這里,通過傳遞標(biāo)頭,您正在執(zhí)行客戶端重定向,該重定向?qū)е聦⑿抡埱蟀l(fā)送到您的服務(wù)器。這意味著在請求1(index.php)中設(shè)置的變量將在請求2()中不可用index2.php。
您可能不想為這樣簡單的事情進行客戶端重定向。在不重新構(gòu)建代碼的情況下解決此問題的最簡單方法是將標(biāo)頭調(diào)用更改為包括
...
while($row = mysqli_fetch_assoc($resultsThree)){
$username = $_SESSION['username'];
$level = $row['level'];
$money = $row['money'];
$diamond = $row['diamond'];
$ruby = $row['rubin'];
}
include('index2.php');
...
(實際上不這樣做,請參見下面的更新)。
但是,您可能想考慮如何組織代碼。有include呼叫所有的地方可以迅速變得混亂和混淆。我建議研究一下PHP路由庫。周圍有一些,例如Klein。
最后,如果出于某種原因確實需要跨客戶端重定向保留數(shù)據(jù),則需要將其存儲在會話變量或數(shù)據(jù)庫中。這$_SESSION;陣列從讀/寫,你可以在其中存儲的數(shù)據(jù)應(yīng)在整個會議持續(xù)您獲取你的用戶名(與注意事項。使用數(shù)據(jù)庫或文件存儲在適當(dāng)?shù)臅r候)。有關(guān)更多信息,請參見PHP文檔。
更新:
所以,我只注意到你實際上是include荷蘭國際集團的server.php文件在您index2.php文件。在這種情況下,你不能include在index2.php在server.php文件的文件,因為這將是一個無限循環(huán)。
我不確定要推薦什么,但似乎您需要重組代碼,同時要記住,使用header調(diào)用重定向?qū)G失所有當(dāng)前PHP狀態(tài)(變量等)。最簡單的事情可能是只調(diào)用您的index2.php文件,讓它包含您的服務(wù)器文件,然后die如果有錯誤。如果成功執(zhí)行查詢,您的變量將可用。
因此,在以下范圍內(nèi)server.php:
if (count($errors) == 0) {
....
} else {
die('Unsuccessful registration');
}
- 1 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報