【问题标题】:Retrieve Cookies values in all pages inner website检索网站内所有页面中的 Cookies 值
【发布时间】:2012-07-25 16:06:58
【问题描述】:

我在一个项目中使用cookie值来检查输入的访问者,首先,存在一个提交帖子表单以输入电子邮件地址,提交后设置cookie(用于下一个导航到当前页面,应该直接输入如果设置了 cookie,则到主页而不是表单页面),一切正常,cookie 设置正确,但是导航到另一个页面后,数据丢失并且不存在 cookie! cookie 应该在所有页面导航中都有效吗?下图一些代码...

if((!$_COOKIE["tickets"] && $_COOKIE["email_address"]) || (empty($_COOKIE['tickets']) && empty($_COOKIE['email_address']))){
$access_vcount=intval(getCurrentValueAccess())+1;
if(getCurrentValueAccess()==0){$query_vcounts=mysql_query("insert into visitors_counter(counter) VALUES('$access_vcount')");}
else{$query_vcounts=mysql_query("update `visitors_counter` set counter='".$access_vcount."'");}
setcookie("tickets", "accessible", time()+86400);
setcookie("email_address", $email_address, time()+86400);
}
header("Location:".BURL."/".getflink(2,'en'));  

Cookie 的有效期为一天(应该是一天)。 当我尝试打印值是另一个页面中的 cookie 时,没有结果。

感谢您的建议。

【问题讨论】:

  • BURL 是否与设置 cookie 的页面相同(子)域?
  • BURL=基本 url ,在我的例子中是 :localhost/projectname/html 并且设置 cookie 时的页面是:BURL/pages/submit.php

标签: php cookies setcookie


【解决方案1】:

在重定向的页面上设置 cookie 时,必须在调用 header('Location: ....'); 之后设置 cookie。

如:

<?php
  header('Location: http://www.example.com/'); 
  setcookie('asite', $site, time()+60*60, '/', 'site.com');  ?>

从 http://de3.php.net/manual/en/function.setcookie.php 的 cmets 粘贴

【讨论】:

  • 然后呢?它奏效了吗?如果是,最好完成这个问题。
  • 将答案标记为正确咳嗽 ;)
  • 答案左侧是带有上下箭头的计数器。正下方是一张白色的支票。如果你点击它,它会变成绿色,这标志着 anweser 是正确的。
  • 如果他们正在解决您的问题或问题,您应该始终接受答案,帮助您的人为此获得了一些积分,这就是 Stackoverflow 的乐趣所在。
【解决方案2】:

在语法中

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

必须正确设置路径,因为 cookie 仅对其下的路径和目录有效。

来自documentation,

cookie 可用的服务器上的路径。如果 设置为“/”,cookie 将在整个域中可用。如果 设置为 '/foo/',cookie 将仅在 /foo/ 中可用 目录和域的所有子目录,例如 /foo/bar/。这 默认值是设置 cookie 的当前目录 在。

【讨论】:

  • 我将代码更新为以下内容: setcookie("tickets", "accessible", time()+86400, '/', BURL);可能没有影响
  • 你在哪个页面调用setcookie()函数?该页面的路径是什么?
  • 我觉得路径一定不能设置!它是可选的,如果为空,则cookie属于所有路径。
  • setcookie("tickets", "accessible", time()+86400, '/', $acces_valid_coockies);使用 BURL=base url site(localhost/projectname/html) 并且设置 cookie 的页面是:BURL/pages/submit.php
猜你喜欢
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 2015-10-01
相关资源
最近更新 更多