对于每个循环 - 设置会话变量

For each loop - setting session variables

我在 PHP 中有一个使用 foreach 循环的列表页面 (mysite.com/listing)。它输出一个用户 ID,例如user1、user2 和一个 link 到详细信息页面,例如:mysite.com/detail

输出:

1. User ID = user1 <a href="mysite.com/detail">Detail Page</a>
2. User ID = user2 <a href="mysite.com/detail">Detail Page</a>
...
10. User ID = user10 <a href="mysite.com/detail">Detail Page</a>

详细信息页面 (mysite.com/detail) 需要从列表页面接收相应的用户 ID 例如,如果用户单击项目 1,“user1”将在 Session 变量中设置并从列表页面传递到详情页。 在详细信息页面中,我只想输出“用户 ID 是 user1”。 我想知道 Session 变量如何在 foreach 循环中工作,或者是否有更好的解决方案? 如果我使用类似的东西:

 $_SESSION['user_id'] = (string)$user->primary_id;
    echo $_SESSION['user_id'];

..在列表页面的 foreach 循环中,它将捕获循环中的最后一个用户 ID,例如用户10 和 echo $_SESSION['user_id']; ...在详细信息页面中将输出 'user10' 而不是 'user1'。 甚至可以在 foreach 循环中使用会话变量吗? 谢谢

"user1" is set in a Session variable and passed from the listings page to the detail page...没有必要这样做。会话并不是实现这一目标的最佳方式(尤其是因为如果您在浏览器中的多个选项卡中打开网站,则传输数据的模型就会中断)。

只需在超链接 URL 中放置一个查询参数,然后使用 $_GET 检索它。

例如

User 1 <a href="mysite.com/detail?user=1">Detail Page</a>
User 2 <a href="mysite.com/detail?user=2">Detail Page</a>

...等等

并在“详细信息”页面中:

$userID = $_GET["user"];