将变量传递到下一页PHP
我正在尝试使用PHP通过会话将变量传递到下一页。下面的代码保存最后一个值。我想在用户单击“更多信息”链接时传递“名称”,在那里我将显示有关单击名称的更多信息将变量传递到下一页PHP,php,html,database,session-variables,Php,Html,Database,Session Variables,我正在尝试使用PHP通过会话将变量传递到下一页。下面的代码保存最后一个值。我想在用户单击“更多信息”链接时传递“名称”,在那里我将显示有关单击名称的更多信息 <?php while ($r = $q->fetch()): $city=$r['city']; $phone=$r['phone']; $name=$r['name']; if (session_status() == PHP_SESSION_NONE) { session_start(); } $_SE
<?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; ?>
首先,您需要将
会话_start()
放在脚本顶部。请始终记住$\u会话
是超级全局变量。无需通过此处访问会话变量。您只需像这样访问即可
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
注意:确保session\u start()
应位于脚本顶部
如果确实要将变量从一页传递到另一页,请执行以下操作
<td> <a href="more_info.php?name=<?php echo $_SESSION['name']; ?>" >More Info</a></td>
给出的答案可以解决OP问题,但这不是在while循环中使用会话的好习惯。因为您试图在会话中插入名称,但名称可能不同。我建议您尝试类似的方法
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
删除:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$_SESSION['name'] = $name;
$_SESSION['phone'] = $phone;
$_SESSION['city'] = $city;
然后像这样传递变量
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
首先,您需要将
会话_start()
放在脚本顶部。请始终记住$\u会话
是超级全局变量。无需通过此处访问会话变量。您只需像这样访问即可
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
注意:确保session\u start()
应位于脚本顶部
如果确实要将变量从一页传递到另一页,请执行以下操作
<td> <a href="more_info.php?name=<?php echo $_SESSION['name']; ?>" >More Info</a></td>
给出的答案可以解决OP问题,但这不是在while循环中使用会话的好习惯。因为您试图在会话中插入名称,但名称可能不同。我建议您尝试类似的方法
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
删除:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$_SESSION['name'] = $name;
$_SESSION['phone'] = $phone;
$_SESSION['city'] = $city;
然后像这样传递变量
echo $_SESSION['name'];
<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>
没有很好的理由在循环中声明会话开始——即使条件使它只声明一次。这是一种可以避免的低效。您的$\u会话
变量在每次迭代中都会被覆盖。除非我误解了您的任务,否则使用$\u会话似乎是一个糟糕的选择。是否要通过$\u GET
传递所有值?也许您可以更简单地通过?id=$id
将id
(假定列名)传递到more_info.php
页面,然后只需调用SELECT
查询即可从数据库中找到所需的更多信息。如果这是您想要的,请编辑您的问题。为什么使用会话?只要$name
在数据库中是唯一的,就可以简单地执行@Javed操作,这可能没问题。Rahul已经提出了您的建议。可能的重复没有很好的理由在循环中声明会话开始——即使条件使它只声明一次。这是一种可以避免的低效。您的$\u会话
变量在每次迭代中都会被覆盖。除非我误解了您的任务,否则使用$\u会话似乎是一个糟糕的选择。是否要通过$\u GET
传递所有值?也许您可以更简单地通过?id=$id
将id
(假定列名)传递到more_info.php
页面,然后只需调用SELECT
查询即可从数据库中找到所需的更多信息。如果这是您想要的,请编辑您的问题。为什么使用会话?只要$name
在数据库中是唯一的,就可以简单地执行@Javed操作,这可能没问题。Rahul已经提出了你的建议。可能是@mickmackusa的复制品是的,你是对的,但我已经建议这么做了……我不是Javed@mickmackusa读一下我的帖子,告诉我错误在哪里。会话的使用是有缺陷的<代码>名称
可能是唯一的,也可能不是唯一的。@mickmackusa是的,你是对的,但我已经建议你这么做了……我不是Javed@mickmackusa读一下我的帖子,告诉我错误在哪里。会话的使用是有缺陷的<代码>名称
可能是唯一的,也可能不是唯一的。