1 回答

TA贡献1793条经验 获得超6个赞
在连接页面上,您将 URL 中的 id 传递到配置文件页面,如下所示:header("Location: profil.php?id=".$_SESSION['id']);
配置文件页面上查找要设置的 $_GET['id'] 的函数得到满足,因为 id 是在 URL 中设置的。
但是,如果我是用户并单击这些链接:
版本配置文件.php
修改器mdp.php
断开连接.php
添加表单.php
id 不会在 URL 或页面请求中传递,但您的代码仍在寻找要在这些页面上设置的值以及下面的代码片段:
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();
}
由于未设置 $_GET['id'] ,因此$userinfo未定义此变量以便稍后在代码中使用。仅当 $_GET['id'] 设置且大于 0 时才会设置。
我的建议是,由于您已经在会话中设置了用户 ID,因此请在其他页面上调用 $_SESSION 变量。因此,只要您继续启动会话,就像现在位于文件顶部一样,并且不结束或销毁会话,您应该能够访问其他页面上 $_SESSION 数组的值:
$_SESSION['id']=$userinfo['id'];
$_SESSION['pseudo']=$userinfo['pseudo'];
$_SESSION['email']=$userinfo['email'];
对于您已在会话中设置的值,只需稍后在其他页面上的代码中回显这些值即可。所以调用它应该可以在其他页面上工作:
<?php echo $_SESSION['pseudo']?></h3>
当然,如果您想在用户“注销”时销毁会话和/或取消设置值。此外,由于值位于会话中,因此您不需要在每个页面上对相同值进行数据库查找,除非它们将要更改或者您正在查找尚未存储在会话中的新数据。
希望这可以帮助。
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报