PHP cookie,session的使用与用户自动登录功能实现方法分析


Posted in PHP onJune 05, 2019

本文实例讲述了PHP cookie,session的使用与用户自动登录功能实现方法。分享给大家供大家参考,具体如下:

cookie的使用

//生成cookie
//注释:setcookie() 函数必须位于 <html> 标签之前。
//setcookie(name, value, expire, path, domain);  //名称,值,过期时间,有效路径,有效域名
//path,可选;如果路径设置为 "/",那么 cookie 将在整个域名内有效.如果路径设置为 "/test/",那么 cookie 将在 test 目录下及其所有子目录下有效。默认的路径值是 cookie 所处的当前目录。
//domain,可选;为了让 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名设置为 ".example.com"。当您把 cookie 的域名设置为 www.example.com 时,cookie 仅在 www 子域名中有效。默认当前域名。
setcookie("user", "Alex Porter", time()+3600);
setcookie("userid", "1000569852", time()+3600);
//获取
var_dump($_COOKIE);
// isset() 函数来确认是否已设置了 cookie:
if (isset($_COOKIE["user"])){
 echo "Welcome " . $_COOKIE["user"] . "!<br />";
}
else{
 echo "Welcome guest!<br />";
}
//当删除 cookie 时,您应当使过期日期变更为过去的时间点。
setcookie("user", "", time()-3600);

session的使用

//session特定:可供应用程序中的所有页面使用;会话信息是临时的,在用户离开网站后将被删除。
// 虚拟主机用户。 设置一个存放目录,需要可读写权限
$savePath = getcwd().'/session_save_dir/';
//echo $savePath;
session_save_path($savePath);//session_start 开启前。
session_id('phpjianlong'); // session_start() 函数之前调用 session_id();命名方式同变量
session_start();
//存储和取值
$_SESSION['views']=123456789;
$_SESSION['name']='php建龙';
$_SESSION['array']=array('a','b','c','d');
echo "Pageviews=". $_SESSION['views'];
var_dump($_SESSION);
//判断是否存在
if(isset($_SESSION['views'])){
 $_SESSION['views']=$_SESSION['views']+1;
}
else{
 $_SESSION['views']=1;  //不存在赋值
}
echo "Views=". $_SESSION['views'];
//session的删除
unset($_SESSION['name']);
var_dump($_SESSION);
//注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。
session_destroy();  //不带参数
session_start();  //再次开启session是,重新初始化$_SESSION数组;
var_dump($_SESSION);
//获取/设置 当前会话 ID。;浏览器会自动生成名为PHPSESSID的cookie
echo session_id();
session_id('phpjianlong'); // session_start() 函数之前调用 session_id();命名方式同变量

session和cookie的区别:

1、session在服务器,cookie存储在浏览器
2、session可以存储数组,cookie value只能是字符串
3、session不能设置有效期,cookie可以设置有效期
4、session基于cookie判断用户信息,禁用cookie,session受影响不能用。还可以手动通过URL传值、隐藏表单传递Session ID。用文件、数据库等形式保存Session ID,

URL 形如:http://www.openphp.cn/index.php?PHPSESSID= bba5b2a240a77e5b44cfa01d49cf9669

用户自动登录的实现

//方法1: Cookie,在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为客户端 Cookie 中的信息是可能被用户查看和修改。不安全舍弃此方法。
//方法2:session,用cookie长期保存session id;
//系统临时文件夹找到这个 Session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位编码后的随机字符串。用编辑器打开它,看一下它的内容:
//变量名|类型:长度:值;
//设置 Session 的生存期:
session_start();
// 保存5天
$lifeTime = 5 * 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
//之后此浏览器在此输入对应网址,服务器获取cookie保存的sessionid;根据sessionid的内容判断,实现自动登录。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
如何实现给定日期的若干天以后的日期
Oct 09 PHP
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
php字符串截取的简单方法
Jul 04 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
PHP可变函数学习小结
Nov 29 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 #PHP
PHP token验证生成原理实例分析
Jun 05 #PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 #PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 #PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 #PHP
PHP使用CURL实现下载文件功能示例
Jun 03 #PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 #PHP
You might like
PHP函数microtime()用法与说明
2013/12/04 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
动手学习无线电
2021/03/10 无线电
javascript继承之为什么要继承
2012/11/10 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
jsTree使用记录实例
2016/12/01 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
详解Python字典小结
2018/10/20 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
利用python修改json文件的value方法
2018/12/31 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python如何实现定时器功能
2020/05/28 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
民生工程实施方案
2014/03/22 职场文书
初三学生个人自我评定
2014/04/06 职场文书
干部培训工作总结2015
2015/05/25 职场文书
小学入学感言
2015/08/01 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书