通过ajax进行注册验证和身份验证 [英] Registration verification and authentication by ajax

查看:126
本文介绍了通过ajax进行注册验证和身份验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个注册表格,当填写该表格并且js正在检查注册"按钮时,查找空白字段并检查用户名的可用性,或者是否已经通过通过ajax向php发送信息来使用电子邮件或移动电话号码并得到答案.但是我的js不会一直工作.这是我的js脚本:

I have a registration form which when filled and "Register" button pressed is being checked by js, to find empty fields and to check availability of username, or if email or mobile num was already used by sending info through ajax to php and receiving answer. But my js won't work all the way through. This is my js script:

$("#reg_button").click(function(){
    user = $("#usr").val();
    pass = $("#psw").val();
    fname = $("#first_name").val();
    sname = $("#second_name").val();
    dateb = $("#date_birth").val();
    email = $("#email").val();
    mobnum = $("#mob_num").val();

    if(user == ""){
        alert("First name must be filled out");
        $('#usr').focus();
        return false;
    }else if(pass == ""){
        alert("Password must be filled out");
        $('#psw').focus();
        return false;
    }else if(fname == ""){
        alert("First name must be filled out");
        $('#first_name').focus();
        return false;
    }else if(sname == ""){
        alert("Second name must be filled out");
        $('#second_name').focus();
        return false;
    }else if(dateb == ""){
        alert("Date of birth must be filled out");
        $('#date_birth').focus();
        return false;
    }else if(email == ""){
        alert("Email must be filled out");
        $('#email').focus();
        return false;
    }else if(mobnum == ""){
        alert("Mobile number must be filled out");
        $('#mob_num').focus();
        return false;
    }else{
        ajaxCheck();
    }

    function ajaxCheck(){
        $.ajax({
            type: "POST",
            url: "http://imes.*********.com/php/check_info_reg.php",
            data: "usr="+user+"&email="+email+"&mob_num="+mobnum,
            dataType: "json",
            success: function(json){
                if(json.success){
                    var user_conf = json.data.usr;
                    var email_conf = json.data.email;
                    var mob_conf = json.data.mob;

                    if(user_conf == "taken"){
                        alert("Username already taken. Choose another one.");
                        $('#usr').focus();
                        return false;
                    }

                    if(email_conf == "taken"){
                        alert("Email already registered. If you lost your password, retrieve it on login page.");
                        $('#email').focus();
                        return false;
                    }

                    if(mob_conf == "taken"){
                        alert("Mobile number already registered. If you lost your password, retrieve it on login page.");
                        $('#mob_num').focus();
                        return false;
                    }
                }else{
                    //Here could go another ajax, for actualy sending the 
                    //info into the php script which sends it to database.
                }
            },
            beforeSend: function() { $.mobile.showPageLoadingMsg(); }, //Show spinner
            complete: function() { $.mobile.hidePageLoadingMsg() }, //Hide spinner
        });
        return false;
    }
});

还有我的php:

<?php
$username = mysql_real_escape_string($_POST['usr']);
$email = mysql_real_escape_string($_POST['email']);
$mob_num = mysql_real_escape_string($_POST['mob_num']);

include('mysql_connection.php');
mysql_select_db("jzperson_imesUsers", $con);

$sql1 = mysql_query("SELECT * FROM registered_user WHERE username='$username'");
$sql2 = mysql_query("SELECT * FROM registered_user WHERE email='$email'");
$sql3 = mysql_query("SELECT * FROM registered_user WHERE mobile_num='$mob_num'");

$res1 = mysql_num_rows($sql1);
$res2 = mysql_num_rows($sql2);
$res3 = mysql_num_rows($sql3);

if(isset($username) && !empty($username){
if($res1 >= 1){
    //JSON message: Username already taken. Choose different.
    echo json_encode(array('success'=>true, 'usr'=>"taken"));
}
}

elseif(isset($email) && !empty($email)){
if($res2 >= 1){
    //JSON message: Email already registered. Retrieve on "login"(login => link).
    echo json_encode(array('success'=>true, 'email'=>"taken"));;
}
}

elseif(isset($mob_num) && !empty($mob_num)){
if($res3 >= 1){
    //JSON message: Mobile number already registered. Retrieve on "login"(login => link).
    echo json_encode(array('success'=>true, 'mob'=>"taken"));
}
}

else{
echo json_encode(array('success'=>false));
}
?>

推荐答案

您在php文件中缺少括号:

You are missing a parenthesis in your php file:

if(isset($username) && !empty($username){

应该是

if(isset($username) && !empty($username)){

这篇关于通过ajax进行注册验证和身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆