在我的页面的每个请求中,我想将查询字符串值存储在cookie中。我的意思是:
$_GET['id'] = 28 to get 28.
下次:
$_GET['id'] is 36.
我想获得36并将其添加到28.我怎样才能实现这一目标?
答案 0 :(得分:0)
$value=$_COOKIE['TestCookie'];
setcookie("TestCookie", $value+$_GET['value'], time()+(10 * 365 * 24 * 60 * 60));
这将解决您的问题。我将cookie的过期时间设置得很大,你可以修改它。
答案 1 :(得分:0)
您可以按照提及的方式使用Cookie,但根据工作流程的不同,您可能希望使用$_SESSION
,因为它通常更安全。 Cookie可以由客户修改,并在访问之间保持不变。如果这是您想要的行为,那么setcookie()
将是您最好的选择。
<?php
// The intval() function helps to ensure that numbers are being used, floatval() could work too
// Get current cookie value
$currentValue = intval($_COOKIE['CookieCounter']);
// Get new passed value
$incrementBy = intval($_GET['id']);
// Set the cookie and have it saved for 30 days
setcookie('CookieCounter', str($currentValue + $incrementBy), time()+60*60*24*30);
另一种方法是使用会话。
会话是一种为个人用户存储数据的简单方法 唯一会话ID。这可用于保存状态信息 页面请求之间。会话ID通常发送到浏览器 通过会话cookie,ID用于检索现有会话 数据。缺少ID或会话cookie让PHP知道创建一个 新会话,并生成新的会话ID。
<?php
// Start the session
session_start();
// Check if the session value is already set
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = intval($_GET['id']);
} else {
// Increment the session value
$_SESSION['count'] += intval($_GET['id']);
}
但是,cookie可以更改,也可以通过浏览器设置等删除。如果您希望它更安全和持久,我会使用数据库或其他持久性数据存储。