1 回答

TA貢獻1793條經(jīng)驗 獲得超6個贊
在連接頁面上,您將 URL 中的 id 傳遞到配置文件頁面,如下所示:header("Location: profil.php?id=".$_SESSION['id']);
配置文件頁面上查找要設(shè)置的 $_GET['id'] 的函數(shù)得到滿足,因為 id 是在 URL 中設(shè)置的。
但是,如果我是用戶并單擊這些鏈接:
版本配置文件.php
修改器mdp.php
斷開連接.php
添加表單.php
id 不會在 URL 或頁面請求中傳遞,但您的代碼仍在尋找要在這些頁面上設(shè)置的值以及下面的代碼片段:
if(isset($_GET['id']) AND $_GET['id'] > 0)
{
$getid=intval($_GET['id']);
$requser= $bdd -> prepare('SELECT * FROM membres WHERE id= ?');
$requser->execute(array($getid));
$userinfo=$requser->fetch();
}
由于未設(shè)置 $_GET['id'] ,因此$userinfo未定義此變量以便稍后在代碼中使用。僅當(dāng) $_GET['id'] 設(shè)置且大于 0 時才會設(shè)置。
我的建議是,由于您已經(jīng)在會話中設(shè)置了用戶 ID,因此請在其他頁面上調(diào)用 $_SESSION 變量。因此,只要您繼續(xù)啟動會話,就像現(xiàn)在位于文件頂部一樣,并且不結(jié)束或銷毀會話,您應(yīng)該能夠訪問其他頁面上 $_SESSION 數(shù)組的值:
$_SESSION['id']=$userinfo['id'];
$_SESSION['pseudo']=$userinfo['pseudo'];
$_SESSION['email']=$userinfo['email'];
對于您已在會話中設(shè)置的值,只需稍后在其他頁面上的代碼中回顯這些值即可。所以調(diào)用它應(yīng)該可以在其他頁面上工作:
<?php echo $_SESSION['pseudo']?></h3>
當(dāng)然,如果您想在用戶“注銷”時銷毀會話和/或取消設(shè)置值。此外,由于值位于會話中,因此您不需要在每個頁面上對相同值進行數(shù)據(jù)庫查找,除非它們將要更改或者您正在查找尚未存儲在會話中的新數(shù)據(jù)。
希望這可以幫助。
- 1 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報