ajax+thinkphp实现用户注册

浏览:6217 发布日期:2017/02/13 分类:用法示例 关键字: thinkphp aiax
ajax+thinkphp实现用户注册

ajax_add.js文件代码:建议大家把js写入文件里,而不是写在HTML里边,乱而且加载慢。未来优化会很难。
首先var一个变量 在里边写入用户名,密码确认密码,$.ajax.使用的前提是你给加载一个jquery.js或者jquery.min.js文件,这两个一个是开发版,一个是正式版。都一样
接受后台返回值status输出错误信息$(document).ready(function() {

    $("#on_button").click(function () {

        var user = {

            username: $("#username").val(),

            pwd: $("#pwd").val(),

            rpwd: $("#rpwd").val(),

        };

        $.ajax({

            type: "POST",

            url: "../Customer/post",

            data: user,

            dataType: 'json',

            success: function (data) {

                if (data.status == -1) {

                    $(".no_customer").html(data.msg);

                    return false;

                }

                if (data.status == -2) {

                    $(".no_pwd").html(data.msg);

                    return false;

                }

                if (data.status == -3) {

                    $(".no_customer").html(data.msg);

                    return false;

                } else {

                    window.location.href = "../Index/Index";

                    return true;

                }

            }

        })

    });

});



html代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <css file="__PUBLIC_CSS__/amazeui.min.css"/>
    <js file="__PUBLIC_JS__/jquery.min.js"/>
    <js file="__HOME_JS__/customer/ajax_add.js"/>
 
    <title>register</title>
</head>
<body>
<div class="am-g">
    <div class="am-u-md-8 am-u-sm-centered">
        <form class="am-form" method="post">
            <fieldset class="am-form-set">
                <input type="text" name="username" placeholder="输入您的用户名,方便你的下次登录" id="username">
                <div class="no_customer" style="color:red"></div>
                <input type="password" name="pwd" placeholder="输入您的密码" id="pwd">
                <input type="password" name="rpwd" placeholder="确认您的密码,方便您忘记密码,还给找回" id="rpwd">
                <div class="no_pwd" style="color:red"></div>
            </fieldset>
            <button type="button" id="on_button" class="am-btn am-btn-primary am-btn-block">注册</button>
        </form>
    </div>
</div>
<script></script>
</body>
</html>
id,name不要输错,因为ajax_add.js文件需要使用。当然这里作者使用的是amazeui前端框架/*注册逻辑类
*@param string username 用户名
*@param string pwd 密码
*@param string rpwd 确认密码
*/
public function registerLogic($username, $pwd, $rpwd)
{
    if(!$username || !$pwd|| !$rpwd)
        return array('status'=>-1,'msg'=>'填写信息不能为空');
    //验证两次密码是否匹配
    if($pwd != $rpwd)
        return array('status'=>-2,'msg'=>'两次输入密码不一致');
    //验证是否存在用户名
    if(get_customer_info($username))
        return array('status'=>-3,'msg'=>'账号已存在');}
 
后台逻辑方法,如果公司项目寻求可持续发展,一直迭代的话,框架设计需要认证的设计一番,不然代码耦合度非常高。
/*注册逻辑类
*@param string username 用户名
*@param string pwd 密码
*@param string rpwd 确认密码
*/
public function registerLogic($username, $pwd, $rpwd)
{
    if(!$username || !$pwd|| !$rpwd)
        return array('status'=>-1,'msg'=>'填写信息不能为空');
    //验证两次密码是否匹配
    if($pwd != $rpwd)
        return array('status'=>-2,'msg'=>'两次输入密码不一致');
    //验证是否存在用户名
    if(get_customer_info($username))
        return array('status'=>-3,'msg'=>'账号已存在');
}
账户查询方法:TP框架的小伙伴可以直接放在公用方法里边
function get_customer_info($username)
{
    $map['name'] = $username;
    $customer = M('customer')->where($map)->find();
    return $customer;
}
 
注册方法:TP小伙伴可以直接放到控制器当中使用。当然new customerLogic这个类,需要你自己建立或者更改。
 
/*注册客户*/
public function post()
{
    if (IS_POST) {
        $regLogic = new CustomerLogic();
        $username = I('post.username');
        $pwd = I('post.pwd');
        $rpwd = I('post.rpwd');
        $result= $regLogic->registerLogic($username, $pwd, $rpwd);
        if($result['status']<0)
            exit(json_encode($result));
        $data = array('name' => $username, 'pwd' => $pwd);
        $add = M('customer')->data($data)->add();
        if ($add)
            session('name',$data['name']);
        exit(json_encode(array('status' => 1, 'msg' => '注册成功')));
    }
    $this->display();
}

到这里就结束了。当然全部复制的人。。除了错误可以留言告诉我,我会一一回复,当然还是相信大家会自己思考和解决。
博客地址:zhouhongliang.cn欢迎指点。
评论( 相关
后面还有条评论,点击查看>>