php用cookie来实现登录界面的方法:1、设置登录表单;2、设置文本框默认值为cookie中的内容;3、在表单的处理界面添加if判断即可。
本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。
php怎么用cookie来实现登陆界面?PHP 登录界面利用 cookie 记住账号密码
界面效果:
cookie 原理:
cookie 在服务器端进行创建,并返回给客户端浏览器本地保存,通过设置生命周期,来确定 cookie 保存时长。
实现过程:
<!-- 登录表单 --> <div class='div_login' id='login'> <form name='login_form' method=post action=/FirstPHPWeb/application/controllers/loginCl.php> <!-- 在此处设置文本框默认值为 cookie 中的内容 --> 账 号:<input type=text name=id value=<?php echo @$_COOKIE['id']; ?>/><br/> 密 码:<input type=password name=psw value=<?php echo @$_COOKIE['psw']; ?>/><br/> 验证码:<input type=text name=checkcode /><br/> <img id='login_checkcode_img' onclick=changeCode('login_checkcode_img') src=../controllers/createCheckCode.php ><a href=# onclick=changeCode('login_checkcode_img')>看不清楚,换一张</a><br/> <input type=checkbox name=isKeepInfo value=keep checked/>在此电脑上保留用户名<br/> <input class='btn' type=image src='/FirstPHPWeb/public/img/login.png' alt='submit' name='login' value='登陆' /> </form>
// 在表单的处理界面添加判断 if($isKeepInfo){ setcookie(id, $id, time()+3600*24*7,'/'); setcookie(psw, $psw, time()+3600*24*7,'/'); }
细节:
实现这个功能并不复杂,但是在实际应用的时候也会忽略一个小的细节:
这里先了解一下 setcookie 函数,开发文档中给出以下语法:
setcookie(name, value, expire, path, domain);
name,value:以键值对的方式存储 cookie 数据;
expire:过期时间,时间戳格式(可选)。不设置则默认为会话级cookie,在浏览器关闭后cookie失效。
path:服务器端有效路径(可选)。默认为当前设置cookie时页面的路径;
domain:该cookie有效的域名(可选),只有指定的域名才可以拿到cookie,默认所有域名都可以拿到。【推荐学习:PHP教程】
当表单文件和表单处理文件不在同一目录下时,一定要记得设置 path 属性,否则在表单界面下会取不到存在 cookie 用户名和密码。