PHP会话操作之cookie用法分析

本文实例分析了PHP cookie用法。分享给大家供大家参考,具体如下:

会话技术:cookie

允许服务器端脚本在浏览器存储数据的技术,
允许服务器向浏览器发送指令,用来管理存储在浏览器端的cookie数据
浏览器如果存储了某服务器所存储的cookie数据,请求时会带上cookie的数据

//增、改
setcookie(key,val);
//删
setcookie(key,'');
//获取浏览器携带的cookie数据
$_COOKIE[key]

特征:

有效期:

默认是临时cookie,也叫会话cookie,会话结束(浏览器关闭)就清除。可以通过设置时间戳(1970年第一秒起)确定生命期,在浏览器端时间以格林威治标准时间(GMT)作为标准

setcookie(key,val,time()+60);
//代表保存1分钟,浏览器会检查是否失效
setcookie(key,val,0);
//默认会话
setcookie(key,'',time()-1);
//删除cookie
setcookie(key,val,PHP_INT_MAX);
//逻辑上表示永久有效

有效路径:

默认在当前路径及其后代路径有效。(路径不是代码所在文件的本地磁盘路径,而是url请求的路径关系)
不同路径下同名的cookie可同时存储于浏览器,浏览器会先查找当前目录内有效的cookie,再向上查找,所有有效的都会携带至服务器,服务器端形成$_COOKIE时,会出现重写效果,先出现的保留,
可以通过设置setcookie()第四个参数为'/'表示站点根目录有效,即整站有效。有效路径由浏览器判断,有效路径设置时候服务器会告知浏览器

setcookie(key,val,0,'/');

有效域:

默认cookie仅仅在当前域下有效

可以通过设置使cookie的有效域,扩展到某个一级域名下的所有子域

me.com      //一级域名
lig.me.com    //二级域名
bee.me.com    //二级域名
setcookie(key,val,0,'','me.com');

是否仅安全传输

默认不论浏览器发出的是http和https协议都会将有效的cookie携带给服务器

可以通过设置第六个参数为true,表示激活仅安全传输,此时浏览器发送请求时若为http协议,就不会发送这些设置为仅安全传输的cookie,apache需要加载openssl模块才能使用https协议

setcookie(key,val,0,'','',true);

HTTPonly

默认浏览器所存储的脚本可以被其它脚本调用处理
通过设置第7个参数使得只能cookie只能在http请求中使用

setcookie(key,val,0,'','',false,true);

注意:

cookie值只能是字符串类型
cookie键可以写成数组下标的形式
setcookie()前不能有输出(output_buffering)

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中cookie用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php中cookie的使用方法

    1.创建/更新cookie 复制代码 代码如下: setCookie($cookieName,$value,time()+秒数): 例子:创建一个cookie,名字为UserName,值为zs,过期时间为2个星期 复制代码 代码如下: setcookie("UserName","zs",time()+2*7*24*3600); 如果不设置时间,就不会保存到cookie文件中.浏览器不关时,能够访问.当浏览器关闭时,就无法访问了. 例子: 复制代码 代码如下: set

  • PHP setcookie设置Cookie用法(及设置无效的问题)

    结果碰到一个问题,setcookie设置了Cookie并没有生效,在浏览器端也没有看到.查了一下,原来是setcookie是通过HTTP请求响应的Header来完成的,需要在请求响应内容输出之前执行(就像其他Header设定一样). 在php.ini中error_reporting = E_ALL的情况下,输出内容之后再setcookie会弹出以下提示: 复制代码 代码如下: Warning: Cannot modify header information – headers already

  • PHP会话控制:Session与Cookie详解

    本文介绍了PHP会话控制,主要阐述以下几点内容: • 会话控制的产生背景/概念 • cookie的维护与生命周期(有效时间) • session的维护与生命周期(回收机制) • cookie与session之间的区别与联系 • 问题1:禁用cookie后session为什么会失效? • 问题2:IE浏览器下丢失session,每次刷新页面,都会生成新的sessionID(Firefox浏览器正常) • session.cookie简单实例 理解会话控制的概念 理解一个概念就需要理解他的背景及产生

  • php cookie 登录验证示例代码

    复制代码 代码如下: <html> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <form name="form1" method="post" action=

  • PHP setcookie() cannot modify header information 的解决方法

    使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information - headers already sent by.... 解决办法如下: 方法一: 在PHP里Cookie的使用是有一些限制的. 1.使用setcookie必须在<html>标签之前 2.使用setcookie之前,不可以使用echo输入内容 3.直到网页被加载完后,cookie才会出现 4.setcookie必须放到任何资料输出浏览器前,才送出 .....

  • php中如何同时使用session和cookie来保存用户登录信息

    同时使用session和cookie来保存用户登录信息1.数据库连接配置页面:connectvars.php 复制代码 代码如下: <?php//数据库的位置define('DB_HOST', '127.0.0.1');//用户名define('DB_USER', 'root');//口令define('DB_PASSWORD', '19900101');//数据库名define('DB_NAME','test') ;?> 2.登录页面:logIn.php 复制代码 代码如下: <?ph

  • 在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 doma

  • php跨域cookie共享使用方法

    A 机器所在的域:a1.main.com,A 有应用 main.phpB 机器所在的域:b1.test.com,B 有应用 test.php 1.在 main.php 里设置 cookie 的时候, cookie 的设置方法如下: 复制代码 代码如下: setcookie( "TestCookie",  "okol",  time() + 3600,  "/", "b1.test.com", 1 ); 这样在 test.php

  • php session和cookie使用说明

    1. PHP的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制.PHP在http协议的头信息里发送cookie, 因此setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对header() 函数的限制类似.1.1 设置cookie: 可以用setcookie() 或setrawcookie() 函数来设置cookie.也可以通过向客户端直接发送http头来设置. 1.1.1 使用setcookie()函数设置cookie: bool setco

  • curl不使用文件存取cookie php使用curl获取cookie示例

    复制代码 代码如下: /*-----保存COOKIE-----*/$url = 'www.xxx.com'; //url地址$post = "id=user&pwd=123456"; //POST数据$ch = curl_init($url); //初始化curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流curl_se

  • PHP读取CURL模拟登录时生成Cookie文件的方法

    本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX';    $post_fields['email'] = 'XXXX';  $post_fields['password'] = 'XXXX';  $post_fields['origURL'] = 'XXX';  $post_fields['doma

  • PHP CURL获取cookies模拟登录的方法

    要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了.利用抓包数据发现,Google 判断了 cookies,当你没有cookies的时候,直接返回 302 跳转,而且是连续几十个302跳转,根本抓不了数据.因此,在发送搜索命令时,需要先提取 cookies 并保存,然后利用保存下来的这个cookies再次发送搜索命令即可正常抓数据了.这其实和论坛的模拟登录一个道理,先POST登录,获取cookies并

随机推荐