将变量传递到下一页 PHP

Pass the variable to next page PHP

我正在尝试使用 PHP 通过会话将变量传递到下一页。下面的代码保存最后一个值。我想在用户点击 "More Info " link 时传递 'name',在那里我将显示有关点击名称的更多信息。

<?php while ($r = $q->fetch()):
 $city=$r['city'];
 $phone=$r['phone'];
 $name=$r['name'];
 if (session_status() == PHP_SESSION_NONE) {
   session_start();
  }
 $_SESSION['name'] = $name;
 $_SESSION['phone'] = $phone;
  $_SESSION['city'] = $city;

 ?>
        <tr>
       <td><?php echo (++$i); ?></td>
            <td><?php echo htmlspecialchars($name) ?></td>
            <td><?php echo htmlspecialchars($phone); ?></td>
            <td><?php echo htmlspecialchars($city); ?></td>
      <td> <a href="more_info.php" >More Info</a></td>
        </tr>
    <?php endwhile; ?> 

首先你需要把 session_start() 放在 script.and 的顶部 永远记住 $_SESSION 是超级全局的 variable.no 需要通过这里来访问会话 variable.simply 你可以这样访问。

echo $_SESSION['name'];

Note:make sure session_start() should be top of the script.

如果你真的想将可变的一页传递给另一页page.do如下所示

<td> <a href="more_info.php?name=<?php echo $_SESSION['name']; ?>" >More Info</a></td> 

还有你的more_info.php.

if (isset($_GET['name'])) {
    $name=$_GET['name'];
    echo $name;
}

给出的答案可以解决 OP 问题 but.this 在 loop.because 您尝试在会话中插入名称时使用会话不是一个好习惯,但名称可能是 different.i 推荐给你试试这样的东西。

删除:

if (session_status() == PHP_SESSION_NONE) {
   session_start();
  }
 $_SESSION['name'] = $name;
 $_SESSION['phone'] = $phone;
  $_SESSION['city'] = $city;

并像这样传递变量。

<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>