2015-02-09 39 views
1

对于我们的网站访问者必须填写表单才能访问。这设置了一个cookie,以便他们不必为同一访问不止一次填写表单。但是,如果他们尝试访问该网站的另一部分,则会损失他们之前拥有的访问权限。我们没有在cookies中存储任何登录信息。我可以在PHP 5中使用动态cookie名称:

这些是我们目前使用和工作原理:

setcookie('oursite_Bids', $_SESSION['bidnumber'], time()+2764800, "/", ".oursite.com", 0); 
setcookie('Bid_Access_Form', $_SESSION['docs'], time()+2764800, "/", ".oursite.com", 0); 

这是我们努力做到使饼干动态既不这些工作:

setcookie($bidnumber, $_SESSION['docs'], time()+2764800, "/", ".oursite.com", 0);  
setcookie($_SESSION['bidnumber'], $_SESSION['docs'], time()+2764800, "/", ".oursite.com", 0); 

有没有办法正确地做到这一点,还是我不得不通过它的设置名称来调用cookie,就像我目前所做的一样?

+0

您可以显示一些$ bidnumber值和一些$ _SESSION ['docs']吗? – 2016-07-01 04:03:14

回答

0

您正在重塑会议的方向。不要这样做。

使用例会:

session_start(); 
$_SESSION['oursite_Bids'] = 'whatever you want'; 

http://php.net/manual/en/function.session-start.php

+0

谢谢你的回应。然而,我不相信我正在“重塑会议的轮子”,因为我们在会议上大量使用。但有了cookie,我们可以让他们得到我们跟踪的多个出价。随着他们能够在每个设定的时间范围内返回他们每个人。每个出价都必须单独管理,并且我们认为如果Cookie名称可以是出价编号,Cookie将允许我们执行此操作。无论对错,这可能非常方便,我们可以像我们想要的那样工作。 – 2015-02-09 20:07:11

+0

@DougGammon为什么你不会跟踪会话数据中的每个出价?比直接使用cookie容易得多 – Brad 2015-02-09 20:38:50

0

正确的答案是:

$bidnumber = $_SESSION['bidnumber']; 
$cookiename = str_replace(' ', '_', $bidnumber); 
setcookie($cookiename, $_SESSION['docs'], time()+2764800, "/", ".oursite.com", 0); 

我上面使用没有工作,因为$bidnumber的值包含空格字符的一个。

谢谢大家的意见。

相关问题