当前位置:文档之家› 12.session会话管理和验证码的使用

12.session会话管理和验证码的使用


2015/12/20
中文验证码
• 如果要使用中文验证码,可以设置: • $Verify = new \Think\Verify(); • // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf • $Verify->useZh = true; • $Verify->entry(); • 如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。
2015/12/20
在模板页面中使用session变量
• {$erName} // 输出$_SESSION['userName']变量
2015/12/20
功能演示:管理员登录
2015/12/20
处理管理员登录的思路
• 本例中新增了验证码功能 • 处理思路与普通用户登录基本一致
2015/12/20
验证码参数
2015/12/20
验证码参数
• 实例化传入参数: • $config = array( • 'fontSize' => 30, // 验证码字体大小 • 'length' => 3, // 验证码位数 • 'useNoise' => false, // 关闭验证码杂点 • ); • $Verify = new \Think\Verify($config); • $Verify->entry();
2015/12/20
功能演示:使用session防止未授权用户登录
• 问题:只要背住访问路径,可以不经登录直接访问未授权界面。 • 解决方案:使用session限制访问。如果用户未登录访问未授权界 面,则直接定向到登录页。
2015/12/20
相关知识点:特殊的方法_initialize()
• ThinkPHP特有的方法 • 会在所有操作方法调用之前首先执行
2015/12/20
session删除
• session('name',null); // 删除name
• 要删除所有的session,可以使用: • session(null); // 清空当前的session
2015/12/20
session判断
• // 判断名称为name的session值是否已经设置 • session('?name');
2015/12/20
生成验证码
• Think\Verify类可以支持验证码的生成和验证功能。
• 下面是最简单的方式生成验证码: • $Verify = new \Think\Verify(); • $Verify->entry(); • 生成的验证码信息会保存到session中,包含的数据有: • array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
PHP开发实践
-- session会话管理和验证码的使用
大连东软信息学院 计算机科学与技术专业教育管理团队
功能演示-用户登录功能
2015/12/20
功能演示-用户登录功能
2015/12/20
处理用户登录的思路
• 获取登录的用户名和密码的值,注意将密码使用md5加密 • 查询数据表,验证是否有包含该用户名和密码的记录 • 如果没有,提示“用户名密码错误” • 如果有,提示“登录成功”,同时将用户名保存在session中 • ———————————————————————— • 在导航栏判断session中有没有保存的用户名,如果有,在导航栏显 示“XX的个人中心”和"退出"两个链接,如果没有,显示“登录”。
2015/12/20
相关知识点:系统常量ACTION_NAME
• ACTION_NAME 当前操作名
• 参见手册——附录——常量参考
2015/12/20
课后练习
• 为创新学习空间的前后台加上用户登录功能。
2015/12/20
2015/12/20
验证码检测
• 可以用Think\Verify类的check方法检测验证码的输入是否正确,例如, 下面是封装的一个验证码检测的函数: • // 检测输入的验证码是否正确,$code为用户输入的验证码字符串 • function check_verify($code, $id = ''){ • $verify = new \Think\Verify(); • return $verify->check($code, $id); •}
2015/12/20
验证码字体
• 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可 以指定验证码的字体,例如: • $Verify = new \Think\Verify(); • // 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf • $Verify->fontttf = '5.ttf'; • $Verify->entry();
2015/12/20
session管理
• session('[操作名]');
• 例如: • session('[pause]'); // 暂停session写入 • session('[start]'); // 启动session • session('[destroy]'); // 销毁session • session('[regenerate]'); // 重新生成session id
2015/12/20
指定验证码字符
• $Verify = new \Think\Verify(); • // 设置验证码字符为纯数字 • $Verify->codeSet = '0123456789'; • $Verify->entry();
2015/12/20
指定验证码字符
• 如果是中文验证码,可以使用zhSet参数设置,例如: • $Verify = new \Think\Verify(); • $Verify->useZh = true; • // 设置验证码字符 • $Verify->zhSet = '们以我到他会作时要动国产的一是工就年阶义发 成部民可出能方进在了不和有大这'; • $Verify->entry();
2015/12/20
在页面中显示生成的验证码
• <img id="verifyImg" src="__APP__/Admin/Index/verify" onClick="fleshVerify()" BORDER="0" ALT="点击刷新验证码" style="cursor:pointer;width:150px" > • 使用img标记显示图片,图片的src的值为生成验证码的函数 • 点击该图片更换新的验证码,需要在JavaScript函数中重新访问该 函数
2015/12/20
背景图片
• 支持验证码背景图片功能,可以如下设置: • $Verify = new \Think\Verify(); • // 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片 • $Verify->useImgBg = true; • $Verify->entry();
2015/12/20
session赋值
• session('name','value'); //设置session
Hale Waihona Puke 2015/12/20session取值
• $value = session('name');
• // 获取所有的session 3.2.2版本新增 • $value = session();
相关主题