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 相关文章推荐
第十一节--重载
Nov 16 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
php实现的CSS更新类实例
Sep 22 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
php获取linux命令结果的实例
Mar 13 PHP
php使用crypt()函数进行加密
Jun 08 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 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中extract()函数的妙用分析
2012/07/11 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
python字符串排序方法
2014/08/29 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
Django自定义认证方式用法示例
2017/06/23 Python
python3 爬取图片的实例代码
2018/11/06 Python
pandas去除重复列的实现方法
2019/01/29 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
执法作风整顿剖析材料
2014/10/11 职场文书
课外活动总结
2015/02/04 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
python数字图像处理:图像的绘制
2022/06/28 Python