如何用javascript对数据库中的现有用户进行验证


How to make a validation for existing user in database in javascript?

我创建了一个表单和一些验证,但这对我来说还不够

<form action="insc.php" method="post" name="inregistrarec">
      <div class="reg_section personal_info">
      <h3>Informatii generale despre companie</h3>
     <input name="Denumirea" type="text"  placeholder="Denumirea" style="width:440px;" >     
     <input name="Domeniul"  type="text"  placeholder="Domeniul" style="width:440px;">
     <input name="Adresa"    type="text"  placeholder="Adresa" style="width:440px;">
     <input name="Tel"       type="text"  placeholder="Telefonul" style="width:440px;">
     <input name="Email"     type="text"  placeholder="E-mail" style="width:440px;">
     <input name="Fax"       type="text"  placeholder="Fax" style="width:440px;">
     <input name="file"      type="file"  placeholder="Foto" style="width:440px;">
    </div>
      <div class="reg_section password">
     <input name="Login"     type="text"     placeholder="Login" style="width:440px;">   
     <input name="password"  type="password" placeholder="Parola" style="width:440px;">
     <input name="password1" type="password" placeholder="Confirma parola"style="width:440px;">
     </div>
      <div class="reg_section password">
      <h3>Despre companie</h3> 
      <textarea name="textarea" id="textarea"        placeholder="Descriere" style="width:440px;"></textarea>
      <input    name="url"      type="url"  id="url" placeholder="Pagina companiei" style="width:440px;">
        </div>
     </p>
      <p class="submit">
      <input type="submit" name="submit" value="Înregistrare"></p>
      </form>


   <script type='text/javascript'>
    var inregistrarecValidator = new Validator("inregistrarec",{enable_smart_live_validation:false, message_style:'messagebox'});
    inregistrarecValidator.addValidation("Denumirea",{required:true,message:"Completati cimpul '"Denumirea'""} );
    inregistrarecValidator.addValidation("Domeniul",{required:true,message:"Completati cimpul '"Domeniul'""} );
    inregistrarecValidator.addValidation("Domeniul",{alpha:true,message:"Completati cimpul doar cu caractere"} );
    inregistrarecValidator.addValidation("Adresa",{required:true,message:"Completati cimpul '"Adresa'""} );
    inregistrarecValidator.addValidation("Tel",{required:true,message:"Completati cimpul '"Telefon'"!"} );
    inregistrarecValidator.addValidation("Tel",{numeric:true,message:"Telefonul trebuie sa fie format din cifre"} );
    inregistrarecValidator.addValidation("Email",{required:true,message:"Introduceti Emailul"} );
    inregistrarecValidator.addValidation("Email",{email:true,message:"Introduceti un Email valid"} );
    inregistrarecValidator.addValidation("Fax",{numeric:true,message:"The input for Fax should be a valid numeric value"} );
    inregistrarecValidator.addValidation("file",{req_file:true,message:"File upload is required for file"} );
    inregistrarecValidator.addValidation("Login",{required:true,message:"Completati Cimpul '"Login'""} );
    inregistrarecValidator.addValidation("Login",{minlen:"6",message:"Login-ul trebuie sa fie compus din minim 6 caractere"} );
    inregistrarecValidator.addValidation("Login",{maxlen:"20",message:"Login-ul trebuie sa fie compus din maxim 20 caractere"} );
     inregistrarecValidator.addValidation("password",{required:true,message:"Please fill in password"} );
    inregistrarecValidator.addValidation("password1",{required:true,message:"Please fill in password1"} );
    inregistrarecValidator.addValidation("password",{minlen:"6",message:"Parola trebuie sa fie compusa din minim 6 caractere"} );
    inregistrarecValidator.addValidation("password1",{maxlen:"20",message:"Parola trebuie sa fie compusa din maxim 20 caractere"} );
    inregistrarecValidator.addValidation("password",{eqelmnt:"password1",message:"Parolele nu coincid"} );
    </script>

在这里,我对我的网站进行了验证,我需要验证这个用户是否存在于数据库中。我可以添加什么函数来获得我需要的东西。我发现了一个函数:inregistrarecValidator.addValidation("Login",{remote:"?sfm_check_unique=y",message:"Acest login exista"} );但我不知道这是如何工作的,也不知道如何与数据库建立连接。我用php在数据库中插入数据,这是代码:

<?php
    $denumirea = mysql_real_escape_string($_POST['Denumirea']);
    $domeniul = mysql_real_escape_string($_POST['Domeniul']);
    $adresa = mysql_real_escape_string($_POST['Adresa']);
    $tel = mysql_real_escape_string($_POST['Tel']);
    $email =mysql_real_escape_string( $_POST['Email']);
    $fax = mysql_real_escape_string($_POST['Fax']);
    $file = mysql_real_escape_string($_POST['file']);
    $login = mysql_real_escape_string($_POST['Login']);
    $password = mysql_real_escape_string($_POST['password']);
    $password1 = mysql_real_escape_string($_POST['password1']);
    $descriere= mysql_real_escape_string($_POST['textarea']);
    $url= mysql_real_escape_string($_POST['url']);

if(isset($_POST['submit'])){
    $id = mysql_connect("localhost", "root", "");
    $db = mysql_select_db("site", $id);
    $dom=mysql_query("insert into domeniu (Domeniu) values ('$domeniul')")  or die(mysql_error());
    $id_dom=mysql_query("SELECT * FROM `domeniu` order by Id_Domeniu desc limit 1;")  or die(mysql_error()); 
    $numrows=mysql_num_rows($id_dom);
    if($numrows!=0)
    {
        while($row=mysql_fetch_assoc($id_dom))
        {
            $domeniu_id=$row['Id_Domeniu'];
            $domeniu=$row['Domeniu'];
            }
    }
    $res=mysql_query("INSERT INTO companie (Den_Comp,Id_Domeniu_FK,Adresa,Tel,Email,Fax,Foto,Login,Parola,Descriere,Pag_Comp) VALUES ('$denumirea','$domeniu_id', '$adresa','$tel','$email','$fax','$file','$login','$password','$descriere','$url')") or die(mysql_error("eroare"));
header('location:index(2).php');
}
else echo"eroare";
?>

使用Ajax功能来检查现有用户。您可以使用任何Javascript库(如jQuery)来使用Javascript或更多easliy。假设您已经创建了一个名为check_username.php的文件来检查用户名。

Javascrip示例:

function sendAjax(url) {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
              alert(xmlhttp.responseText);//Your Ajax response will be alertted here. Do What ever you want with the result
        }
    }
    xmlhttp.open("GET", 'check_username.php', true); // Ajax request send here to check_username.php
    xmlhttp.send();
}

在JQuery 中

$.ajax({
  url: "check_username.php",
}).done(function(response) {
  alert(response);//Response alerted here
});