php 自动登录脚本_PHP cookie,session的使用与用户自动登录功能实现方法分析

这篇文章主要介绍了PHP cookie,session的使用与用户自动登录功能实现方法,结合实例形式分析了php使用cookie与session进行数据存取以及实现自动登陆功能的相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP cookie,session的使用与用户自动登录功能实现方法。分享给大家供大家参考,具体如下:

cookie的使用

//生成cookie

//注释:setcookie() 函数必须位于 标签之前。

//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"] . "!
";

}

else{

echo "Welcome guest!
";

}

//当删除 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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值