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文件
Jan 04 PHP
PHP Document 代码注释规范
Apr 13 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
php 地区分类排序算法
Jul 01 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 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学习笔记(三)操作符与控制结构
2011/08/06 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
js变换显示图片的实例
2013/04/16 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
医学专业毕业生个人的求职信
2013/12/04 职场文书
员工安全生产承诺书
2014/05/22 职场文书
社团活动总结模板
2014/06/30 职场文书
音乐学专业求职信
2014/07/22 职场文书
合作经营协议书范本
2014/09/16 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
给客户的感谢信
2015/01/21 职场文书