PHP入门教程之会话控制技巧(cookie与session)

作者:onestopweb 时间:2023-11-16 00:13:39 

本文实例讲述了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,会话控制,cookie,session
0
投稿

猜你喜欢

  • Request.Servervariables(“HTTP_USER_AGENT“)是什么意思。

    2009-08-21 13:13:00
  • 关于php unset对json_encode的影响详解

    2023-07-06 08:33:52
  • 快速图片链接批处理

    2007-02-03 11:39:00
  • 基于go微服务效率工具goctl深度解析

    2023-07-12 03:57:13
  • 查询数据表中的记录(SELECT)

    2009-02-27 16:06:00
  • CSS处理斜角导航条的一个例子

    2007-08-27 12:38:00
  • oracle 删除重复数据

    2009-07-23 14:46:00
  • asp xml 缓存类

    2011-04-03 11:20:00
  • 秒杀场景的缓存、队列、锁使用Redis优化设计方案

    2023-05-29 19:07:18
  • JavaScrip如果基于url实现图片下载

    2023-08-24 22:31:41
  • Pycharm生成可执行文件.exe的实现方法

    2023-07-19 12:09:54
  • asp如何直接调用后台存储过程?

    2010-06-28 18:27:00
  • 随滚动条移动的DIV层js代码

    2007-10-10 12:51:00
  • ASP程序中输出Excel文件实例一则

    2008-11-07 15:29:00
  • PHP simplexml_load_string()函数实例讲解

    2023-07-09 07:19:28
  • WEB2.0网页制作标准教程(11)不用表格的菜单

    2008-02-19 19:36:00
  • 为您解读CSS优先级

    2009-06-18 18:29:00
  • oracle数据库添加或删除一列的sql语句

    2012-06-06 19:46:54
  • python request post 列表的方法详解

    2023-10-04 11:46:19
  • 表单验证中时间起止判断的递归处理

    2009-12-16 19:27:00
  • asp之家 网络编程 m.aspxhome.com