【问题标题】:A session variable doesn't get passed properly?会话变量没有正确传递?
【发布时间】: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


【解决方案1】:

鉴于您的代码 $_SESSION['petitionNameT'] 在循环的每次迭代中都会被覆盖,因此它始终是查询中最后一行的 petitionName

您可能不想要会话。只需使用您在链接的查询字符串中包含的id

while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
    echo "<tr><td><a href='petition.php?id={$row['petitionName']}'>";
    echo $row['petitionName'];
    echo "</a></td><td>";
    echo $row['petitionTheme'];
    echo "</td></tr>";
}

然后在petition.php:

$petitionNameT = $_GET['id'];

【讨论】:

  • 你是男人中的神!衷心感谢你
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 2011-05-21
  • 2010-09-29
  • 2018-05-09
  • 2011-06-12
  • 2013-08-11
相关资源
最近更新 更多