如何为要禁用的多个链接设置会话?

发布于 2024-12-01 11:53:41 字数 495 浏览 0 评论 0原文

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 等)。 会话变量可以处理多个数字吗?有什么办法可以做到这一点吗?

任何帮助表示赞赏。

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

piece of file1.php:

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

This takes the user to a page where the data gets inserted into the database.

file2.php :

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

But I have got multiple pages (like: file1.php?id=1 | file1.php?id=2 | file1.php?id=3 etc.).
Can the session variable handle multiple numbers? Is there any way to do this?

Any help appreciated.

(P.S.: Currently I am using the GET method to disable the links, but I think SESSION is more reliable.)
(P.P.S.: I need this for a voting script.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

迷鸟归林 2024-12-08 11:53:41

要在一个会话变量中保存更多数据,您需要创建一个多维数组,该数组将针对 $_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!";
}

To hold more data in one session variable, you need to create a multi-dimensional array which will hold multiple against $_SESSION['checked']. You can do this like:

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

(also, you should be sanitizing $_GET['addid'].

Then to check if it is set, you can use array_key_exists:

if(array_key_exists($clicked,$_SESSION['clicked'])){
  echo "this button should be disabled!";
}
逆光飞翔i 2024-12-08 11:53:41

我不确定我是否正确理解你的问题,但如果是如何通过 http 请求发送具有相同 id 的数据数组,你可以使用此语法作为

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

php 代码中的 url,你将作为常规数组访问这些值

会话变量可以处理多个数字吗?有什么办法可以做到这一点吗?

session变量可以存储一个数组

I am not sure I understood right your question, but if it is how to send an array of data with the same id via an http request you can use this syntax for the url

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

from your php code you would access the values as a regular array

Can the session variable handle multiple numbers? Is there any way to do this?

The session variable can store an array

下雨或天晴 2024-12-08 11:53:41

$_SESSION['clicked'] 此会话变量一次只能存储一个值。
如果你想使用二维数组来处理多个值。

$clicked = $_GET['addid'];

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

$_SESSION['clicked'] this session variable can store one value at a time.
If you want use 2 dimension array to handle multiple values.

$clicked = $_GET['addid'];

Ex: $_SESSION['clicked'][$clicked];

妥活 2024-12-08 11:53:41

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

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

firstly concatinate all the ids with comma in a string as $var = 1,2,3,4 and then pass it using GET.

Then there on that page you can explode it from comma and can store it in array and then foreach loop for the array will do it for you. Hope it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文