php开发之cookie

cookie是一种在浏览器远端存储数据并以此来跟踪和识别用户的机制。简单的说,cookie是web服务器暂时存储在用户硬盘上的一个文件夹,并随时被web浏览器读取。当用户再次访问web网站的时候,网站通过获取cookie记录用户的特定访问信息(如:上次访问的位置,花费的时间,用户名和密码) ,从而迅速做出相应,比如不需要用户输入密码就可以登录。
文本文件的格式如下:用户名@网站地址[数字].txtcookie 的功能主要有以下几个方面:

1,记录访客的某些信息。如可以利用cookie记录用户的访问页面的次数,或者是用户曾经输入的信息。另外,某些网站可以自动记录上次方可登录的用户名。

2,在页面间传递变量。浏览器并不会保存当前页面的任何变量信息,当页面被关闭时,页面上的所有变量信息将随之消失。如果声明一个变量id=8,要把这个变量传递到另一个页面,可以先把这个变量以cookie的形式保存下来,然后在下一个页面读取cookie中该变量的值。

3,将索要查看的Internet页存储在cookie临时文件夹中,可以提高以后浏览器的访问速度。

在php中通过setcookie()函数创建cookie。cookie是HTTP头标的组成部分而头标必须在页面其他内容之前发送,他必须最先输出。若在setcookie()函数之前输出一个HTML标记,或者echo语句,甚至一个空行都会导致程序出错。

语法格式如下:

bool setcookie(string name[,string value[,int explre[,string path[,string domain[,int secure]]]]])

setcookie()函数的参数说明如下:

使用setcookie()函数创建cookie 示例代码如下:

<?php

//setcookie("TMCookie",‘www.baidu.com‘);
//setcookie("TMCookie",‘www.baidu.com‘,time()+60);     //cookie的有效期为60秒

//设置有效时间为60秒,有效目录为"/temp/",有效于域名为"www.baidu.com" 及其所有子域名
$value =88;
setcookie("TMCookie",$value,time()+3600,"/temp/",".baidu.com");

?>

cookie的读取

在php中,可以直接使用全局数组$_COOKIE[]来读取浏览器的cookie的值。

使用print_r()函数读取cookie的变量。示例代码如下:

<?php

if(!isset($_COOKIE["visittime"])){                //检测cookie文件是否存在,如果不存在

    setcookie("visittime",date("Y-m-d H:i:s"));   //设置一个cookie变量
    echo "欢迎第一次访问网站!!!";                    //输出字符串
}else{

    setcookie("visittime",date("Y-m-d H:i:s"),time()+60);
    echo "上次访问的时间为:".$_COOKIE["visittime"]."\n";

}

echo "本次访问的时间为:".date("Y-m-d H:i:s")."\n";

?>

运行结果如下:

删除cookie

删除cookie主要是使用setcookie函数来实现的,就是将cookie的失效时间减1秒,如题如下:

setcookie(“”visittime),time()-1);

cookie 的生命周期

如果cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭浏览器,那么cookie就会被删除。这种cookie被称为会话cookie,一般不保存在硬盘上,而是保存在内存中。

如果cookie设定失效时间,那么浏览器会把cookie保存到硬盘中,再次打开浏览器时cookie仍然后笑,直到cookie的有效期超时。

浏览器最多允许存储的cookie文件为300个,而且每个cookie文件最大支持容量为4k,每个域名最多支持20个cookie。如果达到限制时,浏览器就会随机的删除cookies。

时间: 2024-11-05 06:18:25

php开发之cookie的相关文章

Android开发之WebView详解

概述: 一个显示网页的视图.这个类是你可以滚动自己的Web浏览器或在你的Activity中简单地显示一些在线内容的基础.它使用了WebKit渲染引擎来显示网页,包括向前和向后导航的方法(通过历史记录),放大和缩小,执行文本搜索等. 需要注意的是:为了让你的应用能够使用WebView访问互联网和加载网页,你必须添加Internet的权限在Android Manifest文件中: <uses-permission android:name="android.permission.INTERNE

Android 异步开发之 AsyncQueryHandler

AsyncQueryHandler: 官方解释是一个异步帮助类(A helper class to help make handling asynchronous ContentResolver queries easier.) .这个类的主要作用就是异步对DB数据库进行操作,加快其数据处理的速度(这个非常重要,特别是大容量的数据处理时,例如几千联系人的数据读取,按正常的处理速度会非常的慢,使用AsyncQueryHandler,这就会大大的加快速度,增加用户的良好体验). AsyncQuery

IOS开发之copy的问题

copy的目的就是修改副本,修改原始对象和副本时不会产生干扰. 定义一个不可变属性A,再定义一个可变属性B.用B做添加删除等操作后再将B赋值给A时,有些人习惯用A = B:其实这样是不安全的. 假设有下面的一段代码: ? 1 2 3 4 5 6 7 8 9 10   int main() {    NSMutableString *strM = [NSMutableString [email protected]"123"];    NSString *str = strM;    N

Android 安全开发之 ZIP 文件目录遍历

1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在"../"的字符串,攻击者可以利用多个"../"在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接so.dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安全.比如近段时间发现的"寄生兽"漏洞.海豚浏览器远程命令执行漏洞.三星默认输入法远程代码执行漏洞等都与ZIP文件目录遍历有

iOS开发之WKWebView简单使用和常用使用场景

iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版.本着对新事物的好奇,就上网查了一下,但是找了好多个都没说的多了详细,于是就问谷歌,找文档,看看使用方法,试用了一下,果然不错,记录下来,大家分享! WKWebView的特点: 性能高,稳定性好,占用的内存比较小, 支持JS交互 支持HTML5 新特性 可以添加进度条(然并卵,不好用,还是习惯第三方的). 支持内建手势, 据说高达60fps的刷

ArcEngine开发之Command控件使用篇

转自原文 ArcEngine开发之Command控件使用篇 在ArcEngine类库中有大量的Command控件用来与地图控件进行操作和交互.比如有一系列的地图浏览控件.地图查询控件.图斑选取控件.编辑控件来与MapControl和PageLayoutControl进行交互.这些控件被包含在ESRI.ArcGIS.Controls.dll类库中,位于ESRI.ArcGIS.Controls命名空间下. 这些内置的Command控件可以单独实例化来使用,也可以被安置在一个AxToolbarCont

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)]已经谈到了使用FileOpenPicker进行文件选择,以及CameraCaptureUI进行拍照. 对于文件选择一般进行如下设置就能实现: // 选择多个文件 FileOpenPicker openPicker = new FileOpenPicker(); openPic

Swift开发之CALayer---- Modifying the Layer&#39;s Appearance

CALayer的属性一堆,这些都是??,下面就来测试一下各个属性都什么效果- 先建一个基本的洋红色方块 func testLayerProperty(){ myLayer = CALayer() myLayer.frame = CGRectMake(100, 100, 100, 100) myLayer.backgroundColor = UIColor.magentaColor().CGColor self.view.layer.addSublayer(myLayer) } Swift开发之C