前端代码
<form action="{:url('login/loginuser')}" method="post" name="form1" id="form1" class="login_form">
<ul>
<li>
<span>手机号:</span>
<input type="text" name="tel" data-role="none" class="input-style" id="tel"
placeholder="手机号码" value="{$Request.cookie.user_tel|encryption=1}">
</li>
<li>
<span>密码:</span>
<input type="password" name="password" data-role="none" class="input-style"
id="password" placeholder="密码" value="{$Request.cookie.user_password|encryption=1}">
</li>
<li class="yzm">
<span style="width: 25%;float: left;">验证码:</span>
<input style="width: 43%;float: left;border-right: 1px solid #ddd;" type="text"
name="code" data-role="none" class="input-style" id="yzm"
placeholder="请输入验证码">
<a href="#"><img src="{:captcha_src()}"
onclick="this.src='{:captcha_src()}?'+Math.random();" width="137"
height="52" style="float:left; cursor:pointer;" alt="captcha" /></a>
</li>
</ul>
<div class="find">
<label><input name="remember" id="remember" type="checkbox" value="1" {if condition = "$Request.cookie.user_remember eq 1"}checked="checked"{/if}/>记住密码</label>
<a href="{:url('login/delcookie')}">清除信息</a>
<a href="findPW.html">忘记密码?</a>
</div>
<input type="submit" name="Submit3" value="登录 " class="submit33" />
</form>
控制器方法
public function loginuser()
{
if(request()->isPost()){
$data = input('post.');
$res = model('User')->checkLogin($data);
if($res == 1){
$this->success('登录成功',url('login/loginuser'));
}
if($res == 2){
$this->error("密码错误");
}
if($res == 3){
$this->error("用户不存在");
}
}
return view();
}
模型方法
public function checkLogin($data)
{
$user=User::getByTel($data['tel']);
if($user){
if($user['password']==md5($user['code'].$data['password'])){
$time = 60*60*24*7;//一周时间
cookie('user_tel',encryption($user['tel'],0), $time);
if(!empty($data['remember'])){
cookie('user_password',encryption($data['password'],0), $time);
cookie('user_remember' ,$data['remember'], $time);
}
return 1;//登陆成功
}else{
return 2;//密码错误
}
}else{
return 3;//用户不存在
}
return view();
}
}
接下来就是封装加密解密方法
1.config.php添加
'encryption_key' =>'d441d33a65d31dbf0a8016a85c71a5d8',
2.公共方法commoon.php添加
// type 0:加密 1:解密
function encryption($value,$type){
$key = config('encryption_key');
if($type == 0){
return str_replace('=','',base64_encode($value.$key));
}else{
//value+key
$value=base64_decode($value);
//获取val;
$data = strstr($value,$key,true);
if(!$data){//返回false;
$data = '';
}
return $data;
}
}
3结果