菜鸟教程:Cookie(https://www.runoob.com/php/php-cookies.html)
Session(https://www.runoob.com/php/php-sessions.html)
目录
Session和Cookie异同
相同点:
- 用来实现页面之间的数据共享
- 不能跨浏览器访问同一session或cookie
不同点:
- cookie数据存储在用户的浏览器上,session的数据存放在服务器上
- Cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
- Session会在一定的时间内保存在服务器上,当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
- 单个cookie在客户端是有限制的,就是说一个站点在客户端存放的cookie不能超过一定的数量
可以考虑将登陆等重要的信息存放在session中,其他的信息如果需要保留,可以存放在cookie中
Session
- 使用过程:开启session、设置session、访问session、销毁session
- 生命周期:浏览器关闭时就会结束
- 页面书共享:使用session也必须要开启session,那个页面要使用session,就必须先开启session
开启和设置session
// session_set.php文件 <?php header("Content-type:text/html;charset='UTF-8'"); session_start(); // 创建session,开启session回话 $_SESSION['username'] = '宝玉'; // 设置session,创建session数据,$_SESSION是一个数组对象,用来存储session数据 // echo '设置session成功!'; // echo PHP_EOL,'打印session_id:'.session_id(); echo '<script>window.location.href = "./index.php";</script>'; ?>
访问session
// index.php文件 <?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>首页——<?php echo @$_SESSION['username']; ?>的个人博客</title> </head> <body> <p>欢迎<span style="color: red;font-weight: bold;"><?php echo @$_SESSION['username']; ?></span>的到来!!!</p> <a href="./session_des.php">注销</a> </body> </html>
销毁session
// session_des.php文件 <?php session_start(); // 开启session回话机制 session_unset(); // 注销session session_destroy(); // 销毁session echo '<script>alert("已注销");window.location.href = "http://www.baidu.com";</script>'; ?>
Cookie
- 使用过程:设置cookie、使用cookie、注销cookie
- 生命周期:可以根据需求自己设置,如果在生命周期之内,关闭浏览器之后还可以访问
设置和建立cookie
setcookie(name, value, expire, path, domain);参数说明:https://www.runoob.com/php/func-http-setcookie.html
// cookie_set.php 文件 <?php setcookie('username','宝玉',time()+20); echo '<script>window.location.href = "./cookie_use.php";</script>'; ?>
![]()
使用cookie
// cookie_use.php 文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo @$_COOKIE['username']; ?>:门户网站</title> </head> <body> <h1>欢迎进入<span style="color: red;font-weight: bold;"><?php echo @$_COOKIE['username']; ?></span>的首页</h1> <a href="./cookie_del.php">注销cookie</a> </body> </html>
注销cookie
// cookie_del.php 文件 <?php // 注销cookie setcookie('username','',time()-1); echo '<script>window.location.href = "./login.html";</script>'; ?>