PHP Cookie和Session以及实战七天免登陆
程序员文章站
2022-03-24 09:30:48
...
1. Cookie
1.1 Cookie是什么?
cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie
1.2 Cookie的使用
1.2.1 创建Cookie
基本语法:
setcookie(name, value, expire, path, domain);
参数 | 说明 |
---|---|
name | cookie的名称 |
value | cookie的值 |
expire | 通常用 time() 函数再加上秒数来设定 cookie 的失效期 |
path | Cookie 在服务器端的有效路径 |
domain | cookie 有效的域名 |
setcookie("user", "pavin", time()+3600);
1.2.2 查看Cookie
$_COOKIE["user"];//查看单个cookie
print_r($_COOKIE);//查看所有的cookie
1.2.3 删除Cookie
//当删除 cookie 时,您应当使过期日期变更为过去的时间点,值设置为空
setcookie("user", " ", time()-3600);
1.2.4 更新Cookie
setcookie("user", "pavin", time()+3600);
setcookie("user", "perter", time()+3600);
2. Session
2.1 什么是Session
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。
2.2 Session的使用
2.2.1 Session的创建
//创建session 开始一个会话,进行session的初始化
session_start();
//创建一个session
$_SESSION["user"]="Pavin";
$_SESSION["uid"]=1;
2.2.2 销毁session
//销毁和当前session有关的所有资料,并不会清空$_SESSION
session_destroy();
print_r($_SESSION);
//销毁和当前session有关的所有资料,并会清空$_SESSION
$_SESSION=array();
print_r($_SESSION);
//session_destroy() 函数彻底销毁 session。将失去所有已存储的 session 数据
session_destroy();
3. 七天免登陆
login.php
<?php
// 数据接收
$username=$_POST['username'];
$password=$_POST['password'];
//检测到登录动作,清除cookie中所有的别的用户信息
function clearCookies(){
setcookie("username"," ",time()-3600);
setcookie("isLogin"," ",time()-3600);
}
//用户登录
if($_POST['sub']){
if($username=="Pavin" && $password=="123456"){
clearCookies();
//登陆成功后,假设$username保存了用户的登录信息,这里设置为七天免登录
setcookie("username",$username,time()+7*24*3600);
setcookie("isLogin","1");
header("Location:index.php");
}else{
exit("用户名或密码错误");
}
}
//退出登录
if($_GET['action']=="logOUT"){
clearCookies();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户登录</title>
<style>
.box{
width: 300px;
height: 200px;
background-color: lightcyan;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
padding: 40px;
}
h1{
text-align: center;
}
form{
align-content: center;
padding-left: 30px;
}
</style>
</head>
<body>
<div class="box">
<h1>用户登录</h1>
<form action="" method="post">
<table border="1">
<tr>
<td>用户名</td>
<td>
<input type="text" name="username" placeholder="PLEASE ENTER YOUR USERNAME">
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="password" name="password" placeholder="PLEASE ENTER YOUR PASSWORD">
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" name="sub"></input>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
index.php
<?php
if(!(isset($_COOKIE['isLogin'])&&$_COOKIE['isLogin']=="1")){
exit('
<script>
alert("请你先登录再访问主页");
location.href="login.php";
</script>
');
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>首页</title>
</head>
<body>
<h1>首页</h1>
<?php echo "欢迎你".$_COOKIE['username'];?>
<a href="login.php?action=logOUT">退出</a>
</body>
</html>
上一篇: PHP中数据库的基本知识点有哪些?基本语句?基本概念?
下一篇: PHP如何删除数组的空元素?
推荐阅读
-
【PHP】COOKIE和SESSION的使用以及区别
-
php 中cookie和session的区别以及cookie和session的用法详解
-
php 中cookie和session的区别以及cookie和session的用法详解
-
php实现会员登陆注册页有html加Session和Cookie
-
PHP Cookie和Session以及实战七天免登陆
-
PHP 中cookie 和session的联系以及session配置
-
PHP 中cookie 和session的联系以及session配置
-
PHP Cookie和Session以及实战七天免登陆
-
PHP会话(COOKIE和SESSION):注册登陆实操案例
-
php实现会员登陆注册页有html加Session和Cookie