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 相关文章推荐
php之字符串变相相减的代码
Mar 19 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
php debug 安装技巧
Apr 30 PHP
php 不使用js实现页面跳转
Feb 11 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
php生成QRcode实例
Sep 22 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php+ajax注册实时验证功能
Jul 20 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 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
我的论坛源代码(一)
2006/10/09 PHP
PHP小教程之实现链表
2014/06/09 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Python接口测试文件上传实例解析
2020/05/22 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
性能测试工程师的面试题
2015/02/20 面试题
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
文明单位创建材料
2014/12/24 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python