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初学者们头痛的十四个问题
Jan 15 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
php compact 通过变量创建数组
Nov 15 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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
综合图片计数器
2006/10/09 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
jquery中this的使用说明
2010/09/06 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python用模块pytz来转换时区
2016/08/19 Python
用python实现的线程池实例代码
2018/01/06 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python模拟实现分发扑克牌
2020/04/22 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
2014年社区教育工作总结
2014/12/02 职场文书
技术员岗位职责范本
2015/04/11 职场文书
Django与数据库交互的实现
2021/06/03 Python
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers