我在编写脚本..。我需要一些东西来保存会话ID (MD5散列,RAND-1,1000)变量。我希望能够在另一页中从他们的电脑中回忆起这个曲奇。但我只想让它掉一个饼干,在10分钟内到期。
我正在编写一个脚本,用户可以在其中购买东西,所以一旦他们订购了什么东西,比如说VIP包1,它就会检查它是否出售(在我的开关声明中),它将返回URL来订购他们的商品--我想要这个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>'; }现在,在回声中,将包含购买物品的链接。但是当他们访问页面时,我想在某个地方生成一个cookie,一旦他们选择了要购买的项目,它就会给他们提供购买它的URL。当他们访问该网址(checkout.php)时,我希望它检查他们是否有一个有效的cookie (他们不需要检查ID,只是看看他们是否有来自我们网站的实际cookie,其中将包含购买的ID )和饼干的原因。这有可能吗?
发布于 2013-12-14 14:18:52
您可以创建一个类实例来管理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);发布于 2013-12-14 14:12:08
您只需要使用setcookie函数来设置cookie。这里有更多的信息。
一个10分钟到期的例子
setcookie("name", $value, time()+600); /* expires in 10 minutes */https://stackoverflow.com/questions/20584237
复制相似问题