我正在编写脚本..而且我需要能够保存会话ID(MD5哈希,兰德1,1000)变量的东西。我希望能够在另一个页面中从他们的计算机中回忆起这个cookie。但是我只希望它丢掉一个cookie,它会在10分钟后到期。
我正在编写一个用户可以购买东西的脚本,我想要它,所以一旦他们订购了东西,让我们说VIP套餐1,它会检查它是否有待售(在我的交换声明中)并且它将返回用于订购商品的网址 - 我想要这个Cookie,这样如果他们即将订购某些商品,并且他们已经处于非活动状态15分钟,那么Cookie将会被删除,并且无法访问下一页。
我的表格如下:
if(isset($_POST['order']))
{
switch($_POST['order']) {
case NULL:
echo'<b>No order was selected.</b>';
break;
case 'vip1':
echo 'You are ordering VIP 1!';
break;
case 'vip2':
echo 'You are ordering VIP 2!';
break;
case 'vip3':
echo 'You are ordering VIP 3!';
break;
case 'vip4':
echo 'This is test 3!';
break;
}
} else { echo '<form action="shop.php" method="post">
<input type="radio" name="order" value="vip1">VIP Package 1<br />
<input type="radio" name="order" value="vip2">VIP Package 2<br />
<input type="radio" name="order" value="vip3">VIP Package 3<br />
<!--<input type="hidden" name="order"/>-->
<input type="submit" value="Submit">
</form>'; }
现在,在echo中,将包含购买该项目的链接。但我想在某个地方生成一个cookie,当他们访问该页面时,一旦他们选择了要购买的商品,它就会给他们购买它的URL。当他们访问该URL(checkout.php)时,我希望它检查他们是否有一个有效的cookie(他们不需要检查ID,只是为了看看他们是否有来自我们网站的实际cookie,其中包含购买的ID) - 以及cookie的原因。这有可能吗?
答案 0 :(得分:0)
您只需使用setcookie函数设置cookie即可。 More information here
10分钟到期的示例
setcookie("name", $value, time()+600); /* expires in 10 minutes */
答案 1 :(得分:0)
您可以创建一个类实例来管理您的Cookie:
class CookieStorage {
protected $cookie;
function __construct() {}
//The setter function for the cookie
public function set($key,$value,$expire=900) {
//This will only update the cookie IF it is not already there.
if(!$this->get($key)) {
set_cookie($key,$value,$expire);
}
}
//The getter function for the cookie
public function get($key) {
if(isset($_COOKIE[$key])) {
$this->cookie = $_COOKIE[$key];
return $this->cookie;
} else {
return false;
}
}
}
你可以在课堂外通过调用$_COOKIE[$key]
来调用该值来实现这一点,但这样做的好处是你有一个可以参考的工作实例,你可以取消访问全局变量$ _COOKIE,您可以在一个地方添加其他逻辑。这样可以省去更新检查cookie的每个地方的麻烦。
要拨打此电话,您只需执行以下操作:
$cookie = new CookieStorage();
$cookie->set($key,$value);
并检索:
$cookie->get($key);