gpt4 book ai didi

PHP设置COOKIE,用JQUERY COOKIE插件改的,用php不能编辑?

转载 作者:行者123 更新时间:2023-11-30 18:08:37 24 4
gpt4 key购买 nike

我正在使用一些简单的代码作为测试,因为我的页面无法正常工作,也许我遗漏了什么?!我用谷歌搜索这个问题并在这里搜索但似乎没有人提到它!甚至在我读过的 cookie tuts 上!

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

<?php 
if($_COOKIE['PHP1'] !== 'php'){
$blah = setcookie('PHP1','php',time() + (1000 * 120),'/','',false,false);}
?>

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

然后我在 body 上有一些代码:

<?php 
if($blah){echo 'PHP1 has been set';}
else {
echo 'cookie php1 = ' . $_COOKIE['PHP1'];}
?>

告诉我是否设置了 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 本身不用于任何登录或安全功能,它仅用于可访问性 - 文本大小 - 色盲设置。我希望能够同时使用这两种方法,以防 javascript 因任何原因被禁用/被禁用!

提前致谢

编辑

好的,我已经在 chrome 中查看了本地主机的 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 将路径写为“/”而不是目录?正如您从我的代码中看到的那样,我将路径设置为“/”?

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

最佳答案

为了扩展@MIIB 的评论,PHP setcookie() function$_COOKIE superglobal 不直接交互。

正如“常见陷阱”下的手册所述:

Cookies will not become visible until the next loading of a page that the cookie should be visible for.

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

您可能希望将您的 setcookie 调用包装在同样覆盖 $_COOKIE 的内容中(或者,更好的是,使用 getCookie< 拥有您自己的对象setCookie 方法)。

编辑:作为直接写入 $_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;
}

关于PHP设置COOKIE,用JQUERY COOKIE插件改的,用php不能编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com