【发布时间】:2021-02-21 15:36:12
【问题描述】:
所以,我试图设置一个 $_SESSION 变量并将其传递到另一个页面,但另一个页面上的变量与它必须的不同。
在petitionlist.php 中,正在设置$_SESSION['petitionNameT'] = $petitionName1;。
$petitionName1 的比赛根据您选择点击的页面而有所不同,并在 url id 中正确显示。
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
$petitionName1 = $row['petitionName'];
$_SESSION['petitionNameT'] = $petitionName1;
echo "<tr><td><a href='petition.php?id=$petitionName1'>";
echo $row['petitionName'];
echo "</a></td><td>";
echo $row['petitionTheme'];
echo "</td></tr>";
}
但是当我们继续petition.php 时,显示的结果与应有的结果大不相同,而且每个页面都完全相同,无论您点击哪个页面。
<?php
$petitionNameT = $_SESSION['petitionNameT'];
?>
<div id="wrapper">
<div id="contents">
<h1 class="headers"><?php echo $petitionNameT?></h1>
<p>
</p>
</div>
</div>
举个例子:
点击的第一页应该是petitionTest,但它是petitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetiti
点击的第二个页面应该是请愿测试2,但它是petitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetiti
等等等等
附言
petitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetitionNameTestpetiti 是可以点击的页面之一的名称。
附注(2) 我刚刚发现它采用了可以从数据库中单击的最后一页的名称。
【问题讨论】:
-
你的第二个 PS 是解决方案吗,我不知道?您似乎将会话与查询字符串混合在一起。在您的循环中,您每次都覆盖会话,正如您所注意到的,最后一行保存会话值。当用户单击时,您希望检查查询字符串以查看他们单击的内容。然后,如果您真的愿意,可以将会话值设置为该值,尽管如果您可以避免首先处理会话,您的生活会更轻松。
标签: php variables session superglobals