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过滤危险html代码
Aug 18 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
php读取csc文件并输出
May 21 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 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学习笔记之基础知识
2014/11/08 PHP
php和html的区别点详细总结
2019/09/24 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
python:print格式化输出到文件的实例
2018/05/14 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python selenium自动化测试模型图解
2020/04/15 Python
python中round函数保留两位小数的方法
2020/12/04 Python
专业销售业务员求职信
2013/11/18 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
模范班主任事迹材料
2014/12/17 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
聘任书范文大全
2015/09/21 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL