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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
PHP怎样调用MSSQL的存储过程
Oct 09 PHP
我的论坛源代码(四)
Oct 09 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
php 函数中使用static的说明
Jun 01 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php强制用户转向www域名的方法
Jun 19 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
php投票系统之增加与删除投票(管理员篇)
Jul 01 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 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变量作用域以及地址引用问题
2013/12/27 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
python使用cookielib库示例分享
2014/03/03 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python安装requests库的实例代码
2019/06/25 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
python3 xpath和requests应用详解
2020/03/06 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
英文求职信范文
2014/05/23 职场文书
任命书怎么写
2014/06/04 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python
Django如何与Ajax交互
2021/04/29 Python
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python