thinkPHP5——ajax注册登录

主要文件:

app\index\model\UsersModel.php文件代码

namespace app\index\model;
use think\Model;

class UsersModel extends Model{
    protected $pk = 'id';//设置主键
}

一、登录

1.login.html

邮箱:
<input type="email" id="email" name="email">
密码:
<input type="password" id="password" name="password" >
<button type="submit" onclick="login_ajax()"> 登录  </button>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>//jq必须
<script>
function login_ajax(){
    var email=$('#email').val();
    var pas=$('#password').val();
    $.get("http://angryshan.com/index.php/index/login/doLogin.html",
        {"email":email,"password":pas},function(data){
        if(data=='0'){
            window.location="http://angryshan.com/index.php/index/index/index";
        }
        else {
            alert(data);
        }
    });
}
</script>

2.login.php

namespace app\index\controller;
use think\Controller;
use app\index\model\UsersModel;
class Login extends Controller{
    public function doLogin(){
        $user=new UsersModel;
        $user->email = input('email');
        $user->password = input('password');

        $result = $this->validate($user,'Vlogin');
        if(true!==$result){
            echo $result;
        }
        else{
            //验证用户名
            $tn=db('member_content')->where('email',input('email'))->find();
            //验证密码
            $tp=db('member')->where('password',md5(input('password')))->find();
            if(empty($tn)||empty($tp)){
                echo '用户名或密码错误';
            }
            else{
            //验证通过
            //cookie,非法登录
            cookie('id',$tp['username'],3600);
            //验证通过,页面跳转
            //$this->redirect(url('index/index'));
            //传值,判断是否验证通过
            $arr=0;
            echo $arr;
            }
        }
    }
}

二、注册(两者方法差不多)

1.register.html

用户:<input type="text" id="username" name="username">
密码:<input type="password" id="password" name="password">
确认密码:<input type="password" id="repassword" name="repassword" >
邮箱:<input type="email" id="email" name="email">
<button type="submit" onclick="register_ajax()">  注册 </button>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
function register_all(){
    var pas=$('#password').val();
    var repas=$('#repassword').val();
    var email=$('#email').val();

    $.get({url:('../register/register.html')},
        {"password":pas,"repassword":repas,"email":email},
        function(data){
            if (data=='0'){
                var i=window.confirm("注册成功,跳转登录页面");
                if(i!=0){
                    window.location="http://angryshan.com/index.php/index/login/index";
                }
            }
            else {
                alert(data);
            }
    });  
}
</script>

2.Register.php

use think\Controller;
use think\Db;
use app\index\model\UsersModel;

class Register extends Controller{
    public function register(){
        $user=new UsersModel;
        $user->password = input('password');
        $user->repassword=input('repassword');
        $user->email = input('email');

        $result = $this->validate($user,'Vregist');
        if(true!==$result){
            echo $result;
        }
        else{
            $data1=[
                'password'=>md5(input('password'))
            ];
            $data2=[
                'email'=>input('email'),
            ];

           Db('member')->insert($data1)&&Db('member_content')->insert($data2);
           $arr=0;
           /*$result=json_encode($arr);
           header('Content-Type:application/json');//这个类型声明非常关键
           echo $result;*/
           echo $arr;
        }
    }
}

附加注册验证器Vregist.php

namespace app\index\validate;

use think\Validate;

class Vregist extends Validate
{
    protected $rule = [
        'username'=>'require|max:20|unique:member',
        'password'  =>  'require|min:6',
        'repassword'=>'require|confirm:password',
        'email' =>  'require|email|unique:member_content',
        'code'=>'number',

    ];

    protected $message = [
        'username.require'=>'账号不能为空',
        'username.max'=>'账号字数设置不能超过20位',
        'username.unique'=>'该账号已经注册',
        'password.require'  =>  '密码不能为空',
        'password.min'=>'密码不得少于6位',
        'repassword.require'=>'确认密码不能为空',
        'repassword.confirm'=>'两次输入密码不一致',
        'email.require' =>  '邮箱不能为空',
        'code'=>'验证码必须是数字'
    ];

}

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值