热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP学习笔记之cookie和session验证

在php中cookie和session经常是配合使用的,但是cookie安全性没有session高了,session只在服务器端而cookie在客户端,这个自然就明白它们的区

在php中COOKIE和session经常是配合使用的,但是COOKIE安全性没有session高了,session只在服务器端而COOKIE在客户端,这个自然就明白它们的区别了,但它们经常用于各种登录验证,下面我来介绍.

COOKIE和Session算是网站登陆验证的常用手段了.不管论坛也好,微博也好,它们都依赖于COOKIE和session以完成各项工作.

这里就不具体介绍COOKIE和Session的概念了,我们可以简单的把它们理解为临时钥匙,用于开启不同的网络资源.

下面开始介绍在PHP里如何操作COOKIE和Session.

COOKIE:

在PHP里,我们可以使用setCOOKIE()函数来设置COOKIE.但特别注意,setCOOKIE函数必须置于

标签之前.setCOOKIE函数包含了一下几个参数:setCOOKIE(name,value,expire,path,domain).name参数是用来规定COOKIE的名称的,而value则是规定对应名称COOKIE的值,expire则是设定COOKIE有效期的.特别注意path和domain参数可选的.(path是规定COOKIE的服务器路径,而domain是规定COOKIE的所有域名).

一般我们这样设置COOKIE.

设置COOKIE代码如下:

  1. setCOOKIE("username","Ku_Andrew",time()+3600);    
  2. ?>   

username就是我们COOKIE的名字了,而Ku_Andrew则是username的值,time()+3600就是一小时后该COOKIE过期.

现在我们用$_COOKIE来做一个实例.

设置、读取COOKIE代码如下:

  1. $username = $_COOKIE['username'];    
  2. if ($username == "")    
  3.     {    
  4.     setCOOKIE("username","Ku_Andrew",time()+3600);    
  5.     echo "we've not found your username from your COOKIE";    
  6.     echo "but now we've give it to you , please refresh this page";    
  7.     die("kick me and refresh");    
  8.     }    
  9. else    
  10.     {    
  11.     echo ("hello $usernama");    
  12.     }    
  13. ?>   

如果想做出更复杂的判断,例如用户登陆等,我们可以在IF语句中的加入从数据库从检索出来的值

Session:

与COOKIE不同,Session是保存在服务器上的,同时Session会随着浏览器的关闭而自动灭亡,生命周期较短.在PHP上,我们使用session_start()函数来启动session;与设置COOKIE相同,我们必须在

标签之前使用这个函数.使用这个函数之后我们就可以开始设置我们的Session变量了.方法也是极为简单:用$_SESSION数组直接定义.完成了定义,在不使用的时候为了节约服务器资源,我们要关闭它.这时可以使用unset()函数或者session_destroy()函数;unset()是解除变量,session_destroy()则是彻底终结session.下面是代码片段.

Session设置、读取实例代码如下:

  1. session_start();    
  2. if ($_SESSION['pid'] == "")    
  3. {    
  4.     $_SESSION['pid'] = 1;    
  5. }    
  6. else    
  7. {    
  8.     $_SESSION['pid'] += 1;    
  9. }    
  10. echo "this is your $_SESSION['pid'] times watching this page";    
  11. ?>   

这是一个简单的网页计数器,通过设置pid来实现计数.第一次判断中,如果session为空,那么设置成一,并且读取session,反馈给用户.以后的每次访问,都会在原有session的基础上逐次加一反馈给用户.


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 黑客松获奖名单出炉、NFT艺术周圆满落幕 |Oasis周报 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
author-avatar
个阖家团圆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有