0

一块file1.php:

<a href="file2.php?addid=1">Add this to DB</a>

这会将用户带到将数据插入数据库的页面。

文件2.php:

 $clicked = $_GET['addid'];
 $_SESSION['clicked'] = $clicked;
 // data gets inserted
 header("Location: file1.php?id=$clicked");

但我有多个页面(如:file1.php?id=1 | file1.php?id=2 | file1.php?id=3 等)。session 变量可以处理多个数字吗?有没有办法做到这一点?

任何帮助表示赞赏。

(PS:目前我正在使用 GET 方法禁用链接,但我认为 SESSION 更可靠。)(PPS:我需要这个作为投票脚本。)

4

4 回答 4

1

我不确定我是否理解您的问题,但如果它是如何通过 http 请求发送具有相同 ID 的数据数组,您可以将此语法用于 url

file.php?arr[]=val1&arr[]=val2&arr[]=val3

从您的 php 代码中,您可以将值作为常规数组访问

session 变量可以处理多个数字吗?有没有办法做到这一点?

session 变量可以存储一个数组

于 2011-08-25T10:30:55.963 回答
1

$_SESSION['clicked'] 这个会话变量一次可以存储一个值。
如果您想使用二维数组来处理多个值。

$clicked = $_GET['addid'];

例如:$_SESSION['clicked'][$clicked];

于 2011-08-25T10:33:00.063 回答
1

要在一个会话变量中保存更多数据,您需要创建一个多维数组,该数组将保存多个针对$_SESSION['checked']. 你可以这样做:

$clicked = (int)$_GET['addid'];
$_SESSION['clicked'][$clicked] = true;
// data gets inserted
header("Location: file1.php?id=$clicked");

(另外,你应该消毒$_GET['addid'].

然后检查它是否已设置,您可以使用array_key_exists

if(array_key_exists($clicked,$_SESSION['clicked'])){
  echo "this button should be disabled!";
}
于 2011-08-25T10:33:01.763 回答
1

首先将字符串中的所有 id 用逗号连接为 $var = 1,2,3,4,然后使用 GET 传递它。

然后在该页面上,您可以从逗号分解它并将其存储在数组中,然后数组的 foreach 循环将为您完成。希望它有效。

于 2011-08-25T10:33:22.500 回答