我在 item.php 中有这段代码:
while ($row = mysqli_fetch_array($res)) {
$link .= '<br><a href="item.php?id='.$row['item_id'].'">'.$row['item_name'].'</a><br>';
}
echo $link;
因此,这会根据(数据库中)有多少结果生成链接,所以假设用户有 4 个项目,它会将项目名称显示为超链接,但我不确定如何将其链接到我的项目详细信息.php。因此每个项目都将链接到 itemdetail.php,但它们将具有从 mysql 数据库获取的唯一信息。
目前我只想 itemdetail.php 来回显项目名称,但我现在想要的是,我想根据 item_id 为每个链接生成一个唯一的 session id,所以当我按下它时 session ID被传递到itemdetail.php,从那里我可以将 session ID作为字符串传递并从mysql中提取数据(很简单,所以在这方面不需要帮助)。
我知道如何在页面之间传递 session ID,但这仅适用于固定链接(已经存在的按钮),但我不知道如何对生成的按钮/链接执行此操作。
仅供引用,我的网址确实显示/item.php?id=12345,12345 是我的 item_id,如果有帮助的话。这是当我单击生成的链接时(因此从/item.php 到/item.php?id=12345 或每个链接的 item_id ),但当然,除了更改 url 之外,链接不执行任何其他操作。
tl;dr 为每个生成的链接创建一个唯一的 id(可能是获取 item_id 并使用它的最简单方法),将唯一的 id 作为 session 传递,然后在另一个 php 中回显 session 。
提前感谢您提供任何有用的见解。
itemdetail.php
<?php
session_start();
include('connection.php');
echo $_SESSION['advert'];
$aName = $_SESSION['advert'];
?>
atm 没有任何反应,因为 item.php 中的按钮未连接到此。如果我尝试:
while ($row = mysqli_fetch_array($res)) {
$link .= '<br><a href="item.php?id='.$row['item_id'].'">'.$row['item_name'].'</a><br>';
if($link == true) {
header("Location:item.php");
}
我收到“ header 已发送”错误
最佳答案
要访问项目 ID(如果您像现在一样传递项目 ID),请使用类似 $_REQUEST['id']
的内容。
如果您实际上询问 session ID(与问题中显示的应用程序级项目 ID 不同):
session ID 通常通过 cookie 传递。
PHP 将在本地为您完成此操作,无需大量应用程序代码。您只需调用 session_start()
,用户的 session 数据就会在 $_SESSION
全局中可用。
在幕后,这是通过让服务器通过 set-cookie header 将 session ID 传递给客户端来实现的,客户端的浏览器会将其返回到同一服务器的所有 future 请求中。在服务器端, session ID 连接到数据存储(默认情况下,本地文件系统上的文件,但可以是数据库或其他任何内容,具体取决于您的 PHP 配置)。
关于php - 通过传递每个链接的 session ID,将动态生成的链接链接到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33855080/