PHP入门教程之会话控制技巧(cookie与session)


Posted in PHP onSeptember 11, 2016

本文实例讲述了PHP会话控制技巧。分享给大家供大家参考,具体如下:

Demo1.php

<form method="get" action="Demo2.php">
  姓名:<input type="text" name="username" /> <br />
  <input type="submit" value="提交" />
</form>

Demo2.php

<?php
  //echo $_POST['username'];
  //如果表单采用的 get 传输,那么接受必须采用
  echo $_GET['username'];
  //到底那种比较好呢。????
  //$_POST[''];  比较安全
?>

Demo3.php

<?php
  //创建一个 Cookie
  //Cookie 是在你的客户机存一个小文件,这个文件包含你登录时的信息
  //setcookie 可以创建一个客户机的 cookie 文件
  //第一个参数表示 cookie 的名称,第二个参数表示这个 cookie 名称的值
  //所谓的会话结束时,就是当你这个浏览器关闭时,就没有了,就自动删除
  //创建一个包含过期的 cookie, 过期时间采用当前的时间戳 + 秒即可
  //time()+(7*24*60*60) 表示未来的7 天
  //一旦 setcookie 改变了,一刷新浏览器,就会把旧的 cookie 覆盖掉
  setcookie('name','oneStopWeb',time()+(7*24*60*60));
?>

Demo4.php

<?php
  setcookie('name','oneStopWeb');
  //读取本机的 cookie,采用一个超级全局变量 $_COOKIE
  //里面放 cookie 名即可
  //有一个特性,setcookie 并不是及时生成,它会慢一拍
  //PS:慢一拍,第一次刷新,只是生成覆盖了原来。
  //但获取的还是之前的,而第二次刷新,才能真正获取到。
  //echo $_COOKIE['name'];
  //用变量检测函数来判断 cookie 是否存在
  if(isset($_COOKIE['name'])){
    echo $_COOKIE['name'];
  }else{
    echo '不存在此用户';
  }
?>

Demo5.php

<?php
  //删除 cookie
  setcookie('name','oneStopWeb');
  //中间删除掉了这个 cookie
  //将这个值设置为空即可
  //setcookie('name','');
  //我将过期时间调整到目前的时间还少一秒,那么就等于是过期的了
  setcookie('name','oneStopWeb',time()-1);
  echo $_COOKIE['name'];
?>

Demo6.php

<form method="post" action="Demo7.php">
  姓名:<input type="text" name="username" /> <br />
  <input type="submit" value="提交" />
</form>

Demo7.php

<?php
  //如果姓名的指定的姓名相同,那么就生成一个 cookie
  //完成登录
  if(isset($_POST['username']) && $_POST['username']=='oneStopWeb'){
    //如果正确了,我生成一个 cookie,再跳转
    setcookie('name','web');
    header('Location:Demo8.php');
  }else{
    header('Location:Demo6.php');
  }
?>

Demo8.php

<?php
  if(isset($_COOKIE['name'])){
    echo '欢迎光临:'.$_COOKIE['name'];
  }else {
    echo '非法登录';
  }
?>

Demo9.php

<?php
  session_start(); //开户 session 会话处理
  //session 只要用到这个,就必须开启session_start()
  //放在文件开头
  //创建 session ,直接采用超级全局变量赋值即可
  //session 是存在服务器端,一般存放 1440 秒,
  //如果网页没有任何操作,会自动销毁,当然,可以通过 php.ini 去修改保存时间
  //如果关闭了浏览器,那么也自动销毁。
  //及时性,不像 cookie 会慢半拍
  $_SESSION['name1'] = 'oneStopWeb';
  $_SESSION['name2'] = 'oneStopWeb';
  //echo $_SESSION['name'];
// if(isset($_SESSION['name'])){
//   echo $_SESSION['name'];
// }else{
//   echo '不存在此人。';
// }
  //不是删除的方法
// $_SESSION['name'] = '';
  //真正的删除方法
  //unset($_SESSION['name']);
// if(isset($_SESSION['name'])){
//   echo $_SESSION['name'];
// }else{
//   echo '不存在此人。';
// }
?>

Demo10.php

<?php
  session_start();
  //销毁所有 session ,销毁的也慢半拍
  session_destroy();
  echo $_SESSION['name1'] ;
  echo $_SESSION['name2'] ;
  //cookie适用于会员登录,购物车啊。。。
  //因为他不占用服务器资源,所以会员特别多,购物车特别多的,就用 cookie
  //session 一般用于后台管理登录,人少
  //安全性,一段时间不操作会自动过期
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
ThinkPHP模板Switch标签用法示例
Jun 30 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
php文件上传你必须知道的几点
Oct 20 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 PHP
PHP入门教程之表单与验证实例详解
Sep 11 #PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 #PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 #PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 #PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 #PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 #PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 #PHP
You might like
PHP递归删除多维数组中的某个值
2017/04/17 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
python实现复制整个目录的方法
2015/05/12 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
税务干部鉴定材料
2014/02/11 职场文书
档案信息化建设方案
2014/05/16 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
开除员工通知
2015/04/22 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
总结会主持词
2015/07/02 职场文书
工程主管竞聘书
2015/09/15 职场文书
网络研修心得体会
2016/01/08 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL