PHP学习总结(会话控制)
最近刚做完一个简易的登陆注册小项目,当时做的时候匆忙,现在来详细的了解一下PHP会话控制这方面的知识。
cookie和seesion技术出现的原因:
当一个用户请求一个页面时,再请求同一个网站上的另外一个页面时,HTTP协议不能告诉我们两个请求是否来自同一个用户,也不能将两次访问联系到一起!所有出现了cookie和seesion.
一、cookie
cookie是用来将网站的资料记录在客户端的技术,让web服务器将一些资料存放在客户端(用户的电脑中)。
1、向客户端电脑中设置cookie
setcookie();
2、在服务器端上读取cookie内容
$_COOKIE
3、将多维数组应用于cookie中
例如:
setcookie("member[name]",'www',time()+3600);
setcookie("member[email]",'1111',time()+3600);
4、删除cookie
例如:
setcookie("member[name]",'',time()-3600);
setcookie("member[email]",'',time()-3600);
//也可以采用遍历的方法
foreach ($_COOKIE['member'] as $key=>$val){var_dump(setcookie("member[{$key}]",'',time()-3600));}
//注意点:使用setcookie删除cookie的时候,需要与当初设置cookie的时候参数一致!
二、session
session与cookie最大的不同就是,session是把具体信息保存在服务器端。
1、开启session
例如:
session_start();$_SESSION['name']='www';$_SESSION['email']='sss';$_SESSION['url']='zzz';/再另一个PHP文件中访问的时候必须加上
2、打开已存在的seesion
session_start();
var_dump($_SESSION);/注意打开之前一定要先开启seesion
3、注销变量与销毁session
先开启session
session_start();session_unset();/释放所有变量session_destroy();/销毁一个会话中的所有数据setcookie('')/名字可以在设置session时,使用var_dump($_COOKIE)来获取cookie的名字/也可以使用这样的方法setcookie(session_name(),'',time()-3600);//销毁保存在客户端的cookie/但这样的方法删除的不干净/可以采用这样的方法删除干净setcookie(session_name(),'',time()+3600,'/');'/'表示设置cookie的根目录
三、基于session和cookie的登陆模块
简易的用cookie来判断登陆
login.php(登陆文件)
<?phpheader('Content-type:text/html;charset=utf-8');if (isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY') {exit('您已经登录请不要重复登录');}if(isset($_POST['submit'])){if(isset($_POST['username'])&& isset($_POST['password']) && $_POST['username']==='QTFY' && $_POST['password']==='123'){if(setcookie('username',$_POST['username'],time()+3600)){header('Location:login.php');}else{echo 'cookie设置失败!';}}else{header('Location:skip.php?url=login.php&info=用户名或密码输入错误');//应用跳转页面}}?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8" /><title>请登录</title></head><body><form method="post" action="login.php">姓名:<input type="text" name="username" />密码:<input type="password" name="password" /><input type="submit" name="submit" value="登录" /></form></body></html>
index.php(判断是否有cookie以此来进行识别用户身份)
<?phpheader('Content-type:text/html;charset=utf-8');if(isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY'){echo "{$_COOKIE['username']}你好,欢迎回来!";}else{echo "<a href='login.php'>请重新登陆</a>";?>
这样就可以做一个简易的登陆页面(带判断)
skip.php(简单的跳转页面)
<?phpheader('Content-type:text/html;charset=utf-8');if(!isset($_GET['url'])|| !isset($_GET['info'])){exit();}}?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8" /><meta http-equiv="refresh" content="3;URL=<?php echo $_GET['url']?>"/>//3秒<title>正在跳转</title></head><body><div style="text-align:center;font-size:20px;"><?php echo $_GET['info'] ?>,三秒后自动跳转</div>/info提示信息</body></html>
loginout(注销功能页面)
<?php header('Content-type:text/html;charset=utf-8');if (isset($_COOKIE['username']) && $_COOKIE['username']==='QTFY') {if(setcookie('username',$_POST['username'],time()-3600)){header('Location:skip.php?url=index.php&info=注销成功,正在跳转中!');}else{header('Location:skip.php?url=index.php&info=注销失败,请稍后重试!');}}
?>
这样基于cookie的登陆页面就基本实现了
session与cookie基本相同
要注意:用session时,首先开启session。
这里就不演示了,具体的看之前做的登陆注册页面。这里又学到了一个跳转页面,之前都不知道如何用。
PHP学习总结(会话控制)相关推荐
- PHP学习之会话控制session、cookie
会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为.比如:网购和处理邮件时,你可能需要访问多个页面,但只要你不退出,在同一个系统上,多个页面之间互相切换时,还能保持用户的登录 ...
- PHP - 会话控制
第12章 会话控制 学习要点: 1.Cookie的应用 2.Session会话处理 HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本.图形.视频和所有其他数据所有的规则.HTTP是一种无状 ...
- php实现留言板功能代码,php实现留言板功能(会话控制)
php实现留言板功能(会话控制)2020-06-15 12:48:17 本文实例为大家分享了php留言板功能的具体代码,供大家参考,具体内容如下 数据库用到的三张表 一.登录界面 (denglu.ph ...
- 强化学习算法成功控制核聚变装置;元宇宙里的AI玩出新花样
近期业内发布了这些有趣且重要的AI应用: Nature重磅:DeepMind利用强化学习算法成功控制核聚变装置 突破原有技术应用形态,Meta元宇宙这样玩AI 告别渣画质动漫视频,B站开源动漫超分辨率 ...
- 【GoCN酷Go推荐】会话控制利器 gorilla/sessions
推荐 gorilla/sessions 的背景 在日常 Web 应用开发过程中,需要对用户登录状态进行判断,而 HTTP 是无状态的,即不记录用户登录状态,想要得到用户登录状态得把登录状态保存下来,通 ...
- 三、Flask_会话控制与请求钩子
1. 会话控制 会话控制: cookie 和 session 在flask中会话控制的保存主要通过request和response来完成 session本质上就是保存在服务端中的一个文件,文件中存储了 ...
- 限制会话id服务端不共享_会话控制 - able-woman - 博客园
会话控制是什么? cookie和session都是跟踪整个会话过程的技术手段.而会话,就是用户通过浏览器和服务器的一次通话. 为什么要有会话控制? 因为HTTP协议是无状态的,服务器不知道用户上一次做 ...
- WEB开发中的会话控制
Session技术是网站技术中不可或缺的一个重点.主要用户跟踪用户的登录信息,实现跨页面传值.为了讲解会话控制,首先也是给同学们展示效果.如果网站地址被公开,如果没有使用session技术的页面一定会 ...
- activiti 条件表达式json报错_2020年2月13日学习python 条件控制
2020年2月13日学习python 条件控制 所谓条件(condition):指的是成立的条件,即返回值是True的布尔表达式. 运行报错: def account_login(): passwor ...
最新文章
- 在IDE中刷LeetCode,编码调试一体化,刷题效率直线up!
- 用 Python 和 OpenCV 来测量相机到目标的距离
- 安装linux_linux安装mysql
- lwip中dns相关函数gethostbyname()的原理
- 【网络安全】某安全网关前端JS分析
- WatchDog工作原理
- html div模块前留空白,html – 3个DIV彼此相邻,中间填充空白
- 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...
- 人工智能(12)----宽动态摄像机技术
- 不编程也开发13个无需编程的iOS开发工具
- JAVA常用工具类→Date、SimpleDateFormat、Calendar、System、Math
- 中国电信宣布全面布局元宇宙,将打造元宇宙平台和内容生态
- 【免费】前端设计师必须知晓的网站(1)
- Ubuntu关闭自动更新
- el-input 正则,非负数且只有一个小数点
- 程序员最爱说的十句口头禅。。 | 今日最佳
- 201809-3-元素选择器
- echarts旭日图添加图例
- DAY5-URDF优化 简单小练习 工具
- FT232芯片的国产化替代
热门文章
- python续行_python基础(变量,续行符,is,round,if,字符串,日期,数学,参数)...
- java 单例 缓存hashmap_java 、HashMap 和单例
- 六十、走进位运算的大门
- 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
- 博士申请 | 上海财经大学语言智能实验室招收2022年秋季入学博士生
- 今日arXiv精选 | 46篇EMNLP 2021最新论文
- ECCV 2020 SenseHuman Workshop:人类感知、理解与生成
- Attention注意力机制的前世今身
- 丑憨批的NLP笔记BERT前置:ATUO encoder,DAE
- python的前端框架_web前端三大主流框架之Python异步框架如何工作?