Ajax-在注册期间不显示验证消息

时间:2014-01-20 23:04:33

标签: ajax jquery

我尝试做的是在尝试注册时存在用户名或电子邮件时显示验证消息。我使用了json_encode,它有一个消息和状态。发生的事情是,当我输入一个存在的用户名和电子邮件时,它不会做任何事情,也不会显示消息或注册。

if($_SERVER["REQUEST_METHOD"] == "POST")
{
    if($_POST["password"] !== $_POST["confirmation"])
    {
       echo json_encode(array('msg'=>"password and confirmation aren't equal.", 'url'=>"", 'status'=>false));  
    }
    else if(($data['username']=== $_POST['username'] )|| ($data['email'] === $_POST['email'] ))
    {
        echo json_encode(array('msg'=>"Username or  email exists.", 'url'=>"", 'status'=>false));    
    }
    else
    {
    $result = query("INSERT INTO users (username, hash, email) VALUES (?,?,?)", $_POST["username"], crypt($_POST["password"]), $_POST["email"]); 
        $rows = query("SELECT LAST_INSERT_ID() AS id");
        $id = $rows[0]["id"];  
        $_SESSION["id"] = $id;   
        echo json_encode(array('msg'=>"Success.", 'url'=>"/kinema/html/index.php", 'status'=>true));        
    }
}

scripts.js中

$('#register_form').on('submit', function(e) {
        e.preventDefault(); 

        var name = $('#register_form input[name=username]').val();
        var email = $('#register_form input[name=email]').val();

            $.ajax({
                  url: "register.php",
                  type: "POST",
                  data: {
                         username: name,
                         email: email
                        },
                  dataType: 'json',
                  success: function(response) {          
                    if(response.status){  
                    console.log(response);
                    window.location = response.url;
                    }
                    else
                    {
                        $('#invalid_register').html(response.msg);  
                    }
                }
            });
    });

1 个答案:

答案 0 :(得分:0)

您没有发布密码或确认值,这将导致未定义的索引错误。

我可以告诉$ data数组不存在或者你发布的代码不完整。