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也可以?成Shell Script
Oct 09 PHP
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
php抓取https的内容的代码
Apr 06 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
php生成二维码
Aug 10 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
PHP 布尔值的自增与自减的实现方法
May 03 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
PHPEXCEL 使用小记
2013/01/06 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
PHP7 弃用功能
2021/03/09 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python迭代用法实例教程
2014/09/08 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python中的闭包用法实例详解
2015/05/05 Python
python自动zip压缩目录的方法
2015/06/28 Python
python计算圆周率pi的方法
2015/07/11 Python
详解python之简单主机批量管理工具
2017/01/27 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
pytorch 模型可视化的例子
2019/08/17 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
python获取整个网页源码的方法
2020/08/03 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
社区消防工作实施方案
2014/03/21 职场文书
小学捐书活动总结
2014/07/05 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
法定代表人证明书
2014/11/28 职场文书
经费申请报告范文
2015/05/18 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server