file of file1.php:
<a href="file2.php?addid=1">Add this to DB</a>
这会将用户带到一个将数据插入数据库的页面。
file2.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等)。 会话变量可以处理多个数字吗?有没有办法做到这一点?
任何帮助表示感谢。
(P.S。:目前我正在使用GET方法禁用链接,但我认为SESSION更可靠。) (P.P.S。:我需要这个用于投票脚本。)
答案 0 :(得分:1)
我不确定我是否理解你的问题,但如果它是如何通过http请求发送具有相同ID的数据数组,则可以使用此语法作为网址
file.php?arr[]=val1&arr[]=val2&arr[]=val3
从您的PHP代码您将访问值作为常规数组
会话变量可以处理多个数字吗?有没有办法做到这一点?
会话变量可以存储数组
答案 1 :(得分:1)
$ _ SESSION ['clicked']此会话变量一次可以存储一个值 如果你想使用2维数组来处理多个值。
$ clicked = $ _GET ['addid'];
Ex:$ _SESSION ['clicked'] [$ clicked];
答案 2 :(得分: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!";
}
答案 3 :(得分:1)
首先用字符串中的逗号将所有id汇总为$ var = 1,2,3,4,然后使用GET传递它。
然后在那个页面上,您可以从逗号中将其爆炸并将其存储在数组中,然后数组的foreach循环将为您完成。希望它有效。