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 16 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
docker-compose部署php项目实例详解
Jul 30 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
python能开发游戏吗
2020/06/11 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
心理健康日活动总结
2014/05/08 职场文书
关于环保的演讲稿
2014/05/10 职场文书
学校交通安全责任书
2014/08/25 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
如何用python反转图片,视频
2021/04/24 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL