问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP的cookie问题

发布网友 发布时间:2022-04-06 02:00

我来回答

3个回答

热心网友 时间:2022-04-06 03:29

发错地方了!
PHP中使用cookie
1、设置Cookie
PHP用SetCookie函数来设置Cookie。必须注意的一点是:Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。
SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下:
int
SetCookie(string
name,
string
value,
int
expire,
string
path,
string
domain,
int
secure);
除了name之外所有的参数都是可选的。value,path,domain三个参数可以用空字符串代换,表示没有设置;expire

secure两个参数是数值型的,可以用0表示。expire参数是一个标准的Unix时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。
在同一个页面设置Cookie,实际是从后往前,所以如果要在插入一个新的Cookie之前删掉一个,必须先写插入的语句,再写删除的语句,否则可能会出现不希望的结果。
来看几个例子:
简单的:
SetCookie("MyCookie",
"Value
of
MyCookie");
带失效时间的:
SetCookie("WithExpire",
"Expire
in
1
hour",
time()+3600);//3600秒=1小时
什么都有的:
SetCookie("FullCookie",
"Full
cookie
value",
time()+3600,
"/forum",
".phpuser.com",
1);
这里还有一点要说明的,比如站点有几个不同的目录,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的。实际上,即使没有指定路径,WEB服务器会自动传递当前的路径给浏览器的,指定路径会强*务器使用设置的路径。解决这个问题的办法是在调用SetCookie时加上路径和域名,域名的格式可以是“www.phpuser.com”,也可是“.phpuser.com”。
SetCookie函数里表示value的部分,在传递时会自动被encode,也就是说,如果value的值是“test
value”在传递时就变成了“test%20value”,跟URL的方法一样。当然,对于程序来说这是透明的,因为在PHP接收Cookie的值时会自动将其decode。
如果要设置同名的多个Cookie,要用数组,方法是:
SetCookie("CookieArray[]",
"Value
1");
SetCookie("CookieArray[]",
"Value
2");

SetCookie("CookieArray[0]",
"Value
1");
SetCookie("CookieArray[1]",
"Value
2");
2、接收和处理Cookie
PHP对Cookie的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一样,特别简单。
比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。
分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)
echo
$MyCookie;
echo
$CookieArray[0];
echo
count($CookieArray);
echo
$HTTP_COOKIE_VARS["MyCookie"];
就这么简单。
3、删除Cookie
要删除一个已经存在的Cookie,有两个办法:
一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。
要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。
4、使用Cookie的*
首先是必须在HTML文件的内容输出之前设置;
其次不同的浏览器对Cookie的处理不一致辞,且有时会出现错误的结果。
第三个*是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。

热心网友 时间:2022-04-06 04:47

是这样写的, 你这个 COOKIE 有效期为一小时, 过期读不到 //注意服务器时间,时间不对也可能读不到
在写这个COOKIE的页面读不到这个COOKIE,需要在第二个页面读或者刷新本页

热心网友 时间:2022-04-06 06:22

setcookie('admin_name','',0,'/');
setcookie('admin_password','',0,'/');
这样在试下看。
期中'/'代表在整个站点都有用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
intel 英特尔 酷睿 i5-9400F CPU 2.9GHz 6核6线程-详细介绍 vivo手机越用网络越慢 怎么检测 二手苹果电脑交易注意买二手苹果笔记本电脑应注意什么 比如我买一个二手笔记本卖家笔记本预装正版win10的话把他账号注销登录我... 二手苹果笔记本怎么更改账户 军婚假期有多少天 金立e6mini开机出现el 甘肃基层卫生主要内容 甘肃基层医疗卫生系统怎么撤销处方 天津市选调生通过面试了不去会怎么样 php设置cookie的问题? 怎么设置session永不过期 php 怎么设置session 的值永不过期 php如何设置COOKIE控制登录用户的过期时间 请问一个php设置cookie有效期的问题 PHP即时cookie有效期时间怎么设置? 在php中怎么设置cookies的失效时间? 在php中能够设置cookie有效期的参数是? PHP即时cookie有效期时间怎么设置 php中 cookie 的时间怎么设置为永久的,除非客户删除了cookie php如何设置COOKIE控制登录用户的过期时间? php 取文件后缀名几种有效的方法 如何在apache中隐藏Php文件后缀 php改文件后缀名 将php文件的后缀名删除后还能否正常运行 phpstorm怎么把.php后缀去掉 如何去除PHP 隐藏后缀 解析,去除地址栏PHP后缀 php修改文件名后缀 怎么隐藏html php网页的后缀名?? PHP如何得到文件名(不要后缀名)? php是如何设置cookie的呢 php cookie怎么设置当天23:59:59过期 PHP设置cookie可否做到关闭标签页即失效 php object或者array怎么转换成string php object或者array如何转换成string-CSDN论坛 PHPPHP怎么将数组中的键值对都转换为字符串 linux查看php安装了哪些模块 如何查看已经php 已经安装了apc 模块 如果列出PHP语言中安装了哪些模块? linux查看php安装了哪些扩展 linux系统中如果列出PHP语言中安装了哪些模块? 如何查询在unix环境下PHP的安装路径 怎么看php7.0.9 curl安装成功 linux 怎么看php扩展模块是否加载成功 如何查看linux安装了哪些模块 php 对象数组 转换为字符串 如图[object Array]转成北京,北京,东城 PHP根据Ip跳转 PHP判断IP地址 PHP 根据IP地址控制访问的代码 如何设置PHP网页根据不同国家访问者跳转至不同页面