PHP会员登录实现记住密码功能 thinkPHP5
会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别
会员登录实现记住密码功能需要用到cookie 和session,首先我们来简单了解一下cookie 和session 的区别
Cookie
Cookie是完全保存在客户端。当客户端禁止cookie时将不能再使用;对服务端压力较小;可以指定生存周期;安全性差。
Session
Session是存放在服务端的。服务端压力较大;关闭浏览器后,session失效;安全性较好。
当制作单纯的会员登录功能,我们只使用session 就可以,但是要实现记住密码功能 就得再加上cookie了,因为cookie 不会随着浏览器关闭而消失,从而实现了下次打开浏览器用户依然是登录的状态
直接上代码
<div class="user-layout clearfix">
<div class="formlr-box"><form id="user-form" method="post">
<h3>{:lang('log_in')}</h3>
<ul>
<li><span>{:lang('form_email')}</span><input type="input" placeholder="" id="email" name="email"/></li>
<li><span>{:lang('form_password')}</span><input type="password" placeholder="" id="password" name="password"/></li>
</ul>
<div class="forgot">{:lang('remember_me')}</div>
<input type="hidden" name="remember" id="remember" value="0"/>
<button type="button" onclick="checkForm()">{:lang('log_in')}</button>
<div class="other"><a href="{:url('reg')}">{:lang('reg')}</a> | <a href="{:url('forget')}">{:lang('forget_pass')}</a></div>
</form></div>
</div>
<script type="application/javascript">
function checkForm(){
var email = $("#email").val();
var password = $("#password").val();
var formdata = $("#user-form").serializeArray();
if(email == ''){
alert("{:lang('alert_no_email')}");
$("#email").focus();
return false;
}
if((!isEmail(email))){
alert("{:lang('alert_err_email')}");
$("#email").focus();
return false;
}
if(password == ''){
alert("{:lang('alert_no_password')}");
$("#password").focus();
return false;
}
$.post("{:url('login')}", { "formdata": formdata },function(res){
if(res.code == 0){
window.location.href=res.callback;
}else{
alert(res.message);return false;
}
}, "json");
}
/*判断邮箱格式*/
function isEmail(str){
var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
return reg.test(str);
}
$('.forgot').on('click',function(){
if($(this).hasClass('active')){
$(this).removeClass('active');
$('#remember').val(0);
}else{
$(this).addClass('active');
$('#remember').val(1);
}
})
</script>
public function login(){
if (Request::instance()->isPost()){
$formdata = input('post.formdata/a');$data = array();
$username = $formdata[0]['value'];
$password = $formdata[1]['value'];
$remember = $formdata[2]['value'];
/*检查用户是否存在*/
$member = $this->MemberDb->where(array('email'=>$username,'is_status'=>1))->find();
if($member){
/*检查密码是否正确*/
if($member['password'] != md5($password)){
ajax_return('','Password input error',1);
}else{
$auth = array(
'uid' => $member['uid'],
'username' => $member['username']
);
session('member_auth', $auth);
if($remember == 1){
cookie('union_member_auth', $auth, time()+3600*24*30);//保存时间为30天
}
ajax_return('','Success',0,url('index'));
}
}else{
ajax_return('','user does not exist',1);
}
}
/*Mate信息*/
$meta_title = 'Login - '.$this->Config['sitename'];
$meta_keywords = '';
$meta_description = '';
$this->assign('meta_title', $meta_title);
$this->assign('meta_keywords', $meta_keywords);
$this->assign('meta_description', $meta_description);
/*模板渲染*/
return view();
}
原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/2681/