下面我来详细讲解“PHP Cookie学习笔记”的完整攻略。
下面我来详细讲解“PHP Cookie学习笔记”的完整攻略。
一、什么是Cookie
Cookie即浏览器的“小甜饼”,是一种存储在客户端的短文本数据。通过Cookie,Web应用程序能够在客户端存储和检索数据,从而实现用户状态的跟踪和数据交换。在PHP中,通过setcookie()
函数可以创建、修改或删除Cookie。
二、如何使用Cookie
1.创建Cookie
创建Cookie需要传入以下参数:
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
参数说明如下:
$name
:Cookie名,必须唯一。$value
:Cookie值。$expire
:指定Cookie过期时间,单位是秒,默认为0,表示浏览器关闭时Cookie失效。$path
:指定可访问Cookie的路径,默认为/
,表示整个站点都可以访问。$domain
:指定可以访问Cookie的域名,可以是本域名或子域名,为空则表示只有本域名可以访问。$secure
:指定是否只能通过HTTPS协议传输,默认为false
,表示可以通过HTTP协议传输。$httponly
:指定是否只能通过HTTP协议访问Cookie,默认为false
,表示可以通过JavaScript访问。
例如,创建一个名为user
,值为张三
的Cookie:
setcookie("user", "张三");
2.读取Cookie的值
读取Cookie的值可以使用$_COOKIE
数组,例如读取名为user
的Cookie:
echo $_COOKIE['user'];
注意,当浏览器关闭或过期时,该Cookie会自动从$_COOKIE
数组中删除。
3.修改Cookie的值
修改Cookie可以重新调用setcookie()
函数,例如将名为user
的Cookie值改为李四
:
setcookie("user", "李四");
4.删除Cookie
删除Cookie可以将过期时间设置为之前的时间,例如删除名为user
的Cookie:
setcookie("user", "", time() - 3600);
三、示例说明
1.实现用户记住登录状态
实现用户记住登录状态可以通过Cookie实现。当用户登录成功后,创建一个名为login
的Cookie,值为true
,并设置过期时间为一周,然后在访问需要登录才能访问的页面时,检查login
Cookie的值是否为true
,如果为true
则表示用户已经登录过,直接进入页面。
代码示例:
if ($_POST['username'] === 'admin' && $_POST['password'] === '123456') {
setcookie('login', 'true', time() + 7 * 24 * 3600);
echo '登录成功';
} else {
echo '用户名或密码错误';
}
// 检查是否登录
if ($_COOKIE['login'] === 'true') {
echo '欢迎访问';
} else {
echo '请先登录';
}
2.记录用户访问历史
记录用户访问历史可以通过Cookie实现。每次用户访问页面时,先读取名为history
的Cookie的值,将当前页面的URL加入到数组中,并重新设置history
的值为该数组。最后将history
的值存入Cookie中。
代码示例:
// 读取Cookie的值
$history = isset($_COOKIE['history']) ? unserialize($_COOKIE['history']) : [];
// 添加当前页面URL到访问历史数组中
array_push($history, $_SERVER['REQUEST_URI']);
// 限制访问历史数量不超过5个
if (count($history) > 5) {
array_shift($history);
}
// 将访问历史数组序列化后存入Cookie中
setcookie('history', serialize($history), time() + 7 * 24 * 3600);
// 输出访问历史
echo '访问历史:';
foreach ($history as $url) {
echo '<a href="' . $url . '">' . $url . '</a> ';
}
以上就是关于“PHP Cookie学习笔记”的完整攻略,希望对你有所帮助。
本文标题为:PHP Cookie学习笔记
基础教程推荐
- AngularJs Using $location详解及示例代码 2024-02-11
- vue动态ip配置,避免重复打包 2023-10-08
- 简单谈谈margin负值的作用 2022-11-13
- 不使用XMLHttpRequest对象实现Ajax效果的方法小结 2023-02-23
- 使用getJSON()异步请求服务器返回json格式数据的实现 2023-02-14
- 纯CSS结合DIV实现的右侧底部简洁悬浮效果 2024-01-19
- js动态生成form 并用ajax方式提交的实现方法 2023-11-30
- javascript – 如何从HTML表格中将数据插入mysql数据库 2023-10-26
- jsPlumb+vue创建字段映射关系 2023-10-08
- CSS3中使用RGBA设置透明度的示例 2024-04-07