Php 如何将这样的会话放入数组中

Php 如何将这样的会话放入数组中,php,Php,我有以下两个文件,我想使用会话在这两个文件之间传输信息,但我没有得到正确的结果。这是文件 index.php: <?php session_start(); for ($i=0; $i<=2; $i++) { echo ("<p><a href='getpage.php?row=$item_title' target='_blank'>" . $item_title . "</a>"); echo ("<br>");

我有以下两个文件,我想使用会话在这两个文件之间传输信息,但我没有得到正确的结果。这是文件

index.php

<?php

session_start();

for ($i=0; $i<=2; $i++) {

  echo ("<p><a href='getpage.php?row=$item_title' target='_blank'>" . $item_title . "</a>");
  echo ("<br>");
  echo ($item_desc . "</p>"); 

  $_SESSION['item_link'] = $item_link;
  $_SESSION['item_title'] = $item_title;

}

但是当我单击链接并通过单击索引文件中的链接来运行
getpage.php
文件时,我会一直得到最后一个
item\u链接。如何将会话放入一个数组中,这样我不仅可以在您单击链接后获取会话中的最后一个值?

这是一个快速的驱动器尝试,但您可以尝试

  $_SESSION['item_link'][] = $item_link;
  $_SESSION['item_title'][] = $item_title;

那么您的会话变量本身就是数组。

我怀疑您的代码是基于对底层机制的误解。文件只不过是静态资产,只不过是一堆零和一,它们只会占用磁盘空间,直到你对它们做些什么

仅打印文件名:

echo ("<p><a href='getpage.php?row=$item_title' target='_blank'>" . $item_title . "</a>");
。。。它将在
$\u GET['row']
上提供。没有必要去摆弄会议:

 $_SESSION['item_link'] = $item_link; // What for?
最后但并非最不重要的一点是,当您将文本注入一个旨在供计算机使用的字符串(如URL或HTML文档)时,您需要确保不会破坏数据格式。PHP提供以下内置工具:

  • 对于URL:
  • 对于HTML:
所以你的回声应该是这样的:

echo ("<p><a href='getpage.php?row=" . htmlspecialchars(rawurlencode($item_title)) . "' target='_blank'>"
回声()
如果在循环中写入相同的变量,则只剩下最后一个值。在index.php中定义
$item\u link
?,在for循环中使用相同的索引保存会话的原因是什么?index.php中的循环除了输出相同的内容3次之外还有什么其他作用?为什么在两个参数中传递相同的信息会话?为什么你认为你需要一个会话?只需在url中传递一些东西。那么就把它放在循环之外?@KirkBrown:当然,你也需要修改getpage文件。我很抱歉打扰你,但你能告诉我那会是什么样子吗?
 $_SESSION['item_link'] = $item_link; // What for?
echo ("<p><a href='getpage.php?row=" . htmlspecialchars(rawurlencode($item_title)) . "' target='_blank'>"