PHP入门 – 会话控制COOKIE和SESSION应用

Cookie应用

1.Cookie概述

cookie是在http协议下,服务器或脚本可以维护客户端信息的一种方式。

Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上。常用于保存用户名,密码,个性化设置,个人偏好记录等。当用户访问服务器时,服务器可以设置和访问cookie的信息。

cookie保存在客户端,通常是IE或Firefox浏览器的cookie临时文件夹中,可以手动删除。注意:如果浏览器上cookie太多,超过了系统所允许范围,浏览器也会自动对它进行删除

2.设置Cookie

语法:bool setcookie(string name,[string value,[int expire,[string path,[string domain,[int secure]]]]]);

本cookie函数可以有6个属性,常用的有3个参数。

参数 描述
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。

示例

//设置cookie,过期时间3600秒(即使关闭浏览器也不会失效),默认cookie是在关闭浏览器时失效
setcookie('username','xiaoming',time()+3600); 
echo $_COOKIE['username'];	//获取cookie值
setcookie('username');	//删除cookie值
setcookie('username','',time()-1);	//删除cookie值的第二种方法

3.读取Cookie

如果Cookie设置成功,客户端就拥有了Cookie文件,用来保存Web服务器为其设置的用户信息。

在PHP中读取Cookie信息很简单,使用超全局数组$_COOKIE[‘cookie名’]即可获取cookie中的内容。

4.数组形态的Cookie应用

数组也可以利用多维数组的形式,将多个内容值存储在相同Cookie名称标识符下。

5.删除Cookie

有2种方式删除Cookie

省略setcookie()函数的所有参数列

设置cookie为已过期

Session的应用

1.Session概述

Session和Cookie相似,都是用来储存使用者的相关资料。但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下。

图片1

cookie和session在php中的使用区别:

cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。

cookie存放在客户端浏览器中,

session保存在服务器上。

它们之间的联系是session ID 一般保存在cookie中,或者放在URL上。

2.配置Session

在php.ini文件中可以对session进行以下设置:(一般不需要进行调整)

session.auto_start = 0 ; 在请求启动时初始化session

session.cache_expire = 180 ; 设置缓存中的会话文档在 n 分钟后过时

session.cookie_lifetime = 0 ; 设置按秒记的cookie的保存时间, 相当于设置Session的过期时间,为0时表示直到浏览器被重启

session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。但启用该选项也有一些限制,如果确实启用了 session.auto_start,则不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象

session.cookie_path = / ; cookie的有效路径

session.cookie_domain = ; cookie的有效域

session.name = PHPSESSID;  用在cookie里的session的名字

session.save_handler = files ; 用于保存/取回数据的控制方式

session.save_path = /tmp ; 在 save_handler 设为文件时传给控制器的参数, 这是数据文件将保存的路径.

session.use_cookies = 1 ; 是否使用cookies

3.Session的声明与使用

Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。

session_start()函数的语法格式如下

Bool session_start(void)

注意:session_start()函数之前不能有任何输出

Session以数组的形式使用

如:$_SESSION[‘session名’]

4.注销变量与销毁Session

bool session_destroy(void)

删除服务器端保留session信息的文件

unset($_SESSION[‘键名’])

删除内存中由Session数组保存的变量

清除所有变量可以使用 $_SESSION=array()

如果session是基于Cookie的,那么我们还需要删除客户端保留的cookie文件

示例:

session_start();
$_SESSION['username'] = 'xiaoming';
echo $_SESSION['username'];
$_SESSION = array();
//unset($_SESSION['username']);
session_destroy();

5.session的生命周期是 24 分钟,默认情况 session 值在关闭浏览器后失效。如果我们想在关闭浏览器后,短时间再打开浏览器,session值依旧有效,可以进行以下设置:

通过Cookie传递Session ID  相当于 setCookie(session_name(),session_id(),time()+600)

以上可以实现关闭浏览器后,10分钟内打开浏览器,依旧可以获取到session值

其中,session_name()可以获取SessionID储存的变量名称,默认是"PHPSESSID"

session_id()获取SessionID

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇