PHP设置COOKIE,用JQUERY COOKIE插件更改,无法用php编辑?

我使用一些简单的代码作为测试,因为我的页面不起作用,也许我错过了什么?! 我有谷歌这个问题,并在这里搜索,但似乎没有人提到它! 甚至在我读过的cookies上!

我有一个简单的setcookie php代码行:

 

它在任何html之前的页面顶部并将PHP1设置为php就好了;

然后我在身体上有一些代码:

  

告诉我是否正在设置cookie,或者如果设置了该值,该值是什么。 直截了当,工作正常……

(页面有jquery和jquery插件:COOKIE:链接;)然后,我使用控制台检查cookie的值并使用cookie插件更改值,代码如下:

 $.cookie('PHP1'); --"php" $.cookie('PHP1','javascript', { expires: 7, path: '/' }); --"PHP1=javascript; expires=Sat, 09 Mar 2013 19:00:57 GMT; path=/" $.cookie('PHP1'); --"javascript" 

一切都很好,所以然后我刷新页面,PHP告诉我,正如预期的PHP1设置; 然后再次刷新希望看到php1 = php但它只是一直说PHP1已设置!

如果我编辑PHP代码只是为了告诉我PHP1的值,它告诉我PHP1的值是javascript?

我在这里做错了吗? 或者只是在javascript被篡改后我无法使用php编辑cookie? (我想这可能是安全吗?)

cookie本身不适用于任何登录或安全function,它仅用于可访问性 – 文本大小 – 色盲设置。 我希望能够使用这两个因为任何原因javascript被禁用/被禁用!

提前致谢

编辑

好吧,我已经在chrome中查看了我的localhost的cookie,并且有两个PHP1 cookie:

 Name: PHP1 Content: php Domain: localhost Path: / Send For: Any kind of connection Accessible to Script: Yes Created: Saturday, 2 March 2013 19:01:21 Expires: Monday, 4 March 2013 04:21:21 Name: PHP1 Content: javascript Domain: localhost Path: /Cookie_test Send For: Any kind of connection Accessible to Script: Yes Created: Saturday, 2 March 2013 18:50:08 Expires: When the browsing session ends 

我认为第二个,/ Cookie_test路径,是javascript之一! 所以,如果这是问题,我怎么能这样做,以便javascript写道路径为“/”而不是dir? 你可以从我的代码中看到我给它的路径为“/”?

实际上是因为我没有像我在php中那样添加第五个选项?

要扩展@ MIIB的注释,PHP setcookie()函数和$_COOKIE超全局不直接交互。

正如“共同陷阱”下的手册所述:

在下次加载可以看到cookie的页面之前,Cookie不会显示。

实际上, $_COOKIE是在PHP脚本的最开始根据从浏览器收到的cookie创建 ; 另一方面, setcookie()定义在脚本发送输出时将哪些cookie 发送到浏览器

您可能希望将setcookie调用包装为也会覆盖$_COOKIE (或者更好的是,使用getCookiesetCookie方法拥有自己的对象)。

编辑:作为这样一个直接写入$_COOKIE的函数的一个非常简单的例子:

 function set_cookie_and_superglobal($cookie_name, $cookie_value) { // For simplicity, this hard-codes the same parameters as the code in the question, and just generalises the name and value setcookie($cookie_name, $cookie_value, time() + (1000 * 120),'/','',false,false); $_COOKIE[$cookie_name] = $cookie_value; } 

我在这里讨论的问题是由于localhost !!! 如果我使用我的环回(127.0.0.1)它完美地工作,当按照我说的做。 我读到它与localhost中没有“。”有关,而且有些浏览器(比如chrome)不喜欢它!

部分问题是jquery会读取php cookie然后设置自己的第二个cookie,其中包含我在问题中编辑的路径中的额外细节。 Php然后会按原样读取这个,但是当再次设置cookie时,将“编辑”其旧cookie但仍然从Jquery cookie读取!