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的FTP学习(一)[转自奥索]
Oct 09 PHP
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
10 个经典PHP函数
Oct 17 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
基于laravel缓冲cache的用法详解
Oct 23 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
一个PHP针对数字的加密解密类
2014/03/20 PHP
ejs v9 javascript模板系统
2012/03/21 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
利用Python计算KS的实例详解
2020/03/03 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
详解python算法常用技巧与内置库
2020/10/17 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
彩色的非洲教学反思
2014/02/18 职场文书
交通事故私了协议书
2014/04/16 职场文书
2014年保洁工作总结
2014/11/24 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
英语导游欢迎词
2015/09/30 职场文书
python多次执行绘制条形图
2022/04/20 Python