最近刚做完一个简易的登陆注册小项目,当时做的时候匆忙,现在来详细的了解一下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学习总结(会话控制)相关推荐

  1. PHP学习之会话控制session、cookie

    会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为.比如:网购和处理邮件时,你可能需要访问多个页面,但只要你不退出,在同一个系统上,多个页面之间互相切换时,还能保持用户的登录 ...

  2. PHP - 会话控制

    第12章 会话控制 学习要点: 1.Cookie的应用 2.Session会话处理 HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本.图形.视频和所有其他数据所有的规则.HTTP是一种无状 ...

  3. php实现留言板功能代码,php实现留言板功能(会话控制)

    php实现留言板功能(会话控制)2020-06-15 12:48:17 本文实例为大家分享了php留言板功能的具体代码,供大家参考,具体内容如下 数据库用到的三张表 一.登录界面 (denglu.ph ...

  4. 强化学习算法成功控制核聚变装置;元宇宙里的AI玩出新花样

    近期业内发布了这些有趣且重要的AI应用: Nature重磅:DeepMind利用强化学习算法成功控制核聚变装置 突破原有技术应用形态,Meta元宇宙这样玩AI 告别渣画质动漫视频,B站开源动漫超分辨率 ...

  5. 【GoCN酷Go推荐】会话控制利器 gorilla/sessions

    推荐 gorilla/sessions 的背景 在日常 Web 应用开发过程中,需要对用户登录状态进行判断,而 HTTP 是无状态的,即不记录用户登录状态,想要得到用户登录状态得把登录状态保存下来,通 ...

  6. 三、Flask_会话控制与请求钩子

    1. 会话控制 会话控制: cookie 和 session 在flask中会话控制的保存主要通过request和response来完成 session本质上就是保存在服务端中的一个文件,文件中存储了 ...

  7. 限制会话id服务端不共享_会话控制 - able-woman - 博客园

    会话控制是什么? cookie和session都是跟踪整个会话过程的技术手段.而会话,就是用户通过浏览器和服务器的一次通话. 为什么要有会话控制? 因为HTTP协议是无状态的,服务器不知道用户上一次做 ...

  8. WEB开发中的会话控制

    Session技术是网站技术中不可或缺的一个重点.主要用户跟踪用户的登录信息,实现跨页面传值.为了讲解会话控制,首先也是给同学们展示效果.如果网站地址被公开,如果没有使用session技术的页面一定会 ...

  9. activiti 条件表达式json报错_2020年2月13日学习python 条件控制

    2020年2月13日学习python 条件控制 所谓条件(condition):指的是成立的条件,即返回值是True的布尔表达式. 运行报错: def account_login(): passwor ...

最新文章

  1. 在IDE中刷LeetCode,编码调试一体化,刷题效率直线up!
  2. 用 Python 和 OpenCV 来测量相机到目标的距离
  3. 安装linux_linux安装mysql
  4. lwip中dns相关函数gethostbyname()的原理
  5. 【网络安全】某安全网关前端JS分析
  6. WatchDog工作原理
  7. html div模块前留空白,html – 3个DIV彼此相邻,中间填充空白
  8. 设树采用孩子兄弟表示法存放.用类c语言设计算法计算树的高度.,(数据结构课程设计分类题目.doc...
  9. 人工智能(12)----宽动态摄像机技术
  10. 不编程也开发13个无需编程的iOS开发工具
  11. JAVA常用工具类→Date、SimpleDateFormat、Calendar、System、Math
  12. 中国电信宣布全面布局元宇宙,将打造元宇宙平台和内容生态
  13. 【免费】前端设计师必须知晓的网站(1)
  14. Ubuntu关闭自动更新
  15. el-input 正则,非负数且只有一个小数点
  16. 程序员最爱说的十句口头禅。。 | 今日最佳
  17. 201809-3-元素选择器
  18. echarts旭日图添加图例
  19. DAY5-URDF优化 简单小练习 工具
  20. FT232芯片的国产化替代

热门文章

  1. python续行_python基础(变量,续行符,is,round,if,字符串,日期,数学,参数)...
  2. java 单例 缓存hashmap_java 、HashMap 和单例
  3. 六十、走进位运算的大门
  4. 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
  5. 博士申请 | 上海财经大学语言智能实验室招收2022年秋季入学博士生
  6. 今日arXiv精选 | 46篇EMNLP 2021最新论文
  7. ECCV 2020 SenseHuman Workshop:人类感知、理解与生成
  8. Attention注意力机制的前世今身
  9. 丑憨批的NLP笔记BERT前置:ATUO encoder,DAE
  10. python的前端框架_web前端三大主流框架之Python异步框架如何工作?