7天入门php-cookie与session

一、cookie

cookie 是服务器留在计算机中的小文件,常用于识别用户,也可用于页面间传递小的数据。

1、php创建cookie

setcookie():用于设置cookie。比JSP 中设置cookie 简单多了!

语法:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = ""[, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

说明:

$expire:有效期至。可使用time()或mktime() 函数指定。

$path:服务器端能访问到该cookie的路径。具体:

1)、设置为‘/’:整个域可访问。

2)、设置为‘/example/’:在该路径中和该路径的所有子路径下可访问。

3)、默认为该cookie被设置的路径。

$domain:设置为www.example.com将使该cookie能被该子域名和该子域名下所有子域名(如eq.www.example.com)访问。若设置为整个域名可访问,则相应应写为example.com。

(ps:域名分级,从右往左,级别由高到低,最高级为.cn,为国家级。常见的为三级域名,如www.baidu.com。)

注意:设置cookie必须位于标签<html>之前。

scure:boolean型,表明是否只在安全协议下(https)发送该cookie。

$httponly:表明是否只通过http协议访问,限制JavaScript等脚本访问该cookie。5.2版本引入。

例如:

<?php
setcookie("user","小年轻",time()+3600);
//设置cookie一小时后过期
?>
<html>...</html>


详细: http://php.net/manual/zh/function.setcookie.php


2、取cookie值

相应的$_COOKIE 全局变量用于取出cookie值:

echo $_COOKIE['user'];
配合使用isset() 函数实现典型的欢迎提示:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
  echo "Welcome guest!<br />";
?>
</body>
</html>

3、删除cookie

同JSP 等中思路一样,设置时间过期即可。例:

setcookie("user","",time()-3600);//随便设置一个已过的时间即可


二、session

session用于存储有关用户会话的信息。

简单地讲,每个用户访问服务器的操作都不一样,如购买商品,如何管理和保存不同用户及其的购物信息(如收藏商品、已买商品等),这正是session所解决的问题。但这些会话信息是临时的,因此,一般还需要将其保存至数据库。

session工作机制:为每个访问者创建一个唯一的id(UID),并基于这个UID 来存储变量。UID 存储在cookie中,亦或通过URL 进行传导。

工作流程:

1、开始PHP session

session_start():启动会话。必须位于<html>前。

<?php
session_start();
?>
<html>...</html>

说明:上面的代码会向服务器注册一个会话,以便可以开始保存用户信息,同时分配一个UID 。


2、存储/取回session变量

使用$_SESSION变量。典型的例子:统计访问次数。

<?php
session_start();
if (isset($_SESSION['times'])) {
	$_SESSION['times']+=1;
	echo "You have visited the website ".$_SESSION['times']." times";
}
else{
	echo "Welcome!";
	$_SESSION['times']=1;//没有访问记录,则创建变量。
}
?>
<!DOCTYPE html>
<html>
<head>
	<title>测试session</title>
	<meta charset="utf-8">
</head>
<body>
</body>
</html>

3、终结session

unset($var):释放指定的$var变量。用于此处即:uset($_SESSION['user'])。

session_destroy():重置session,失去所有保存的session数据。无参。


关于session 的功能和大致工作原理,细读:

http://baike.baidu.com/item/session/479100







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值