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 empty函数 使用说明
Aug 10 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
深入PHP autoload机制的详解
Jun 09 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP程序员基本要求和必备技能
May 09 PHP
PHP基本语法总结
Sep 06 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 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 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
python实现逻辑回归的方法示例
2017/05/02 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python打印输出数组中全部元素
2018/03/13 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
蛋白质世界:Protein World
2017/11/23 全球购物
绩效工资实施方案
2014/03/15 职场文书
激励口号大全
2014/06/17 职场文书
励志演讲稿200字
2014/08/21 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
培训感想范文
2015/08/07 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
工作简历的自我评价
2019/05/16 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL