使用javascript和php注册表单。 [英] Registration form using javascript and php.

查看:173
本文介绍了使用javascript和php注册表单。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的下面的代码中,我使用javascript和php来构建注册表单。有两个文件``register.php``,包含表单,javascript库和javascript代码的html代码。第二个文件``reghand.php``处理用于验证和插入数据的PHP代码。表单验证后,数据会正确插入数据库,但验证失败时会出现问题。这就像没有javascript开始行动,当验证失败时,我被重定向到reghand.php,其中验证错误显示为``{username:inuse,password:missmatch}``这些是来自我的reghand的错误.php但我想使用``register.php``上的javascript错误信息,这也应该出现在表单页面本身,而不是``reghand.php``请帮忙。



``register.php``

< script type =   text / javascript src =   ./ js / jquery.min.js>< /脚本> 



< script> 
$( document )。ready( function (){
$(< span class =code-string> form.register)。change( function (){
$ .post( register.php,$( form.register)。serialize(), function (data){
if (data.flname == cntbempty
$( p#name_error)。slideDown();
else
$( p#name_error)。hide();
if (data.username == inuse
$( 点#username_error)了slideDown();
else
$( p#username_error)隐藏();
if (data.password == missmatch
$( p#password_error)。slideDown( );
else
$( p#password_error)隐藏();
if (data.email == 无效
$( p#email_error)。slideDown( );
else
$( p#email_error)隐藏();
}, json);
});
});





 <  表格    action   =  reghand.php   方法  = 发布    class   =  register  >  
< fieldset >
< 图例 > 注册< /罪nd >
< 输入 类型 = text name = fname 必需 = required maxlength = 15 占位符 = 名字 / >
< 输入 < span class =code-attribute> type = text 名称 = lname 必需 = required maxlength = 15 占位符 = 姓氏 / >
< p id = name_error class = 错误 > 名字姓氏不能为空且可以相同< / p >
< 输入 type = text 名称 = 用户名 required = required maxlength = 15 占位符 = 用户名 class = 用户名 / >
< p id = username_error class = error > 该用户名不可用< / p >
< 输入 < span class =code-attribute> type = email name = 电子邮件 必需 = required maxlength = 35 占位符 = 电子邮件 / >
< p id = email_error class = 错误 > 该电子邮件已注册< / p >
< 输入 type = password 名称 = 密码 必需 = required maxlength = 15 占位符 = 密码 / >
< 输入 type = 密码 名称 = password2 必需 = required < span class =code-attribute> maxlength = 15 占位符 = 确认密码 / >
< p id = password_error class = 错误 > 密码与不匹配< / p >
< 输入 type = 提交 name = reg value = 注册! >
< / fieldset >
< / form >





``reghand.php``

 <?php  
if(isset($ _ POST [' reg'])){
$ fn = ucfirst($ _ POST [' fname' ]);
$ ln = ucfirst($ _ POST [' L-NAME']);
$ un = $ _POST [' username ];
$ em = $ _POST [' email ];
$ pswd = $ _POST [' password ];
$ pswd2 = $ _POST [' password2 ];
$ sql = $ db-> prepare( SELECT username FROM users WHERE username =:username< /跨度>);
$ sql->执行(数组(' :username' => $ un ));
$ row = $ sql-> fetch(PDO :: FETCH_ASSOC);
$ db_username = $ row [' username ];
$ usernames = $ db_username ;
$ data = array();
if(isset($ fn)&& isset($ ln)){
if( $ fn != && $ ln!= < span class =code-string>
&& $ fn == $ ln ){
$ data [ flname] = cntbempty;
}
}
if(isset($ un)){
if ($ un == $ usernames ){
$ data [ username] = inuse;
}
}
if(isset($ pswd)&& isset($ pswd2)){
if( $ pswd2 != && $ pswd != $ pswd2 ){
$ data [ password] = missmatch;
}
}
if(isset( $ em )){
if( $ em != &&!preg_match( / ^([a-zA-Z0-9])+([a-zA-Z0-9 \。 - ])* @([a-zA-Z0-9 _-])+([a-zA-Z0-9 \ ._-] +)+ $ /,$ _ POST [ email])){
$ data [ email] = notvalid< /跨度>;
}
}
if(!empty($ data))
{
echo json_encode($数据);
死;
}
else {
$ pswd = password_hash($ pswd,PASSWORD_DEFAULT);
$ pswd2 = password_hash($ pswd2,PASSWORD_DEFAULT);
$ stmt = $ db-> prepare( INSERT INTO users(username,first_name,last_name,email,password,password2)VALUES(:username,:first_name,:last_name,:email,:password,:password2));
$ stmt->执行(数组(' :username' => $ un ,' :first_name' => $ fn,' :last_name' => $ ln,' :email' => $ em,' :password' => $ pswd,' :password2' => $ pswd2));
}
如果($ stmt-> rowCount()== 1){
header( 位置:login.php);
}
其他 {
echo 错误;
}
}
?>

解决方案

document )。ready( function (){


form.register)。change( function (){


.post( register .PHP

In my code below I am using javascript and php for building registration form. There are two files ``register.php`` that contains html code for form, javascript library and javascript code. Second file ``reghand.php`` handles php code for validation and inserting data. Data is inserted correctly into database after form validation but problem appears when validation fails. It's like no javascript comes into action, when validation fails I get redirected to reghand.php where validation errors are shown ``{"username":"inuse","password":"missmatch"}`` these are errors from my reghand.php but I want to use javascript error message that's on ``register.php`` and that too should appear on the form page itself, not on ``reghand.php`` Please help.

``register.php``

<script type="text/javascript" src="./js/jquery.min.js"></script>


<script>
        $(document).ready(function(){
  $("form.register").change(function() {
    $.post("register.php", $("form.register").serialize(), function( data ) {
      if( data.flname == "cntbempty" )
        $("p#name_error").slideDown();
      else
        $("p#name_error").hide();
      if( data.username == "inuse" )
        $("p#username_error").slideDown();
      else
        $("p#username_error").hide();
      if( data.password == "missmatch" )
        $("p#password_error").slideDown();
      else
        $("p#password_error").hide();
      if( data.email == "notvalid" )
        $("p#email_error").slideDown();
      else
        $("p#email_error").hide();
    }, "json");
  });
});



<form action="reghand.php" method="post" class="register">
   <fieldset>
   <legend>Registration</legend>
   <input type="text" name="fname" required="required" maxlength="15" placeholder="First Name"/>        
   <input type="text" name="lname" required="required" maxlength="15" placeholder="Last Name"/>
   <p id="name_error" class="error">First name Last name cannot be empty and can be same</p>
   <input type="text" name="username" required="required" maxlength="15" placeholder="Username" class="username" />        
   <p id="username_error" class="error">That Username is unavailable</p>       
   <input type="email" name="email" required="required" maxlength="35" placeholder="Email"/>        
   <p id="email_error" class="error">That Email is already registered</p>       
   <input type="password" name="password" required="required" maxlength="15" placeholder="Password"/>        
   <input type="password" name="password2" required="required" maxlength="15" placeholder="Confirm Password"/>
   <p id="password_error" class="error">Passwords do not match</p>
   <input type="submit" name="reg" value="Sign Up!">
 </fieldset>
</form>



``reghand.php``

<?php
if(isset($_POST['reg'])){
 $fn = ucfirst($_POST['fname']);
 $ln = ucfirst($_POST['lname']);
 $un = $_POST['username'];
 $em = $_POST['email'];
 $pswd = $_POST['password'];
 $pswd2 = $_POST['password2'];
 $sql=$db->prepare("SELECT username FROM users WHERE username=:username");
 $sql->execute(array(':username'=>$un));
 $row = $sql->fetch(PDO::FETCH_ASSOC);
 $db_username = $row['username'];
 $usernames = $db_username;
 $data = array();
 if( isset($fn) && isset($ln) ) {
  if( $fn != "" && $ln!="" && $fn == $ln ) {
    $data["flname"] = "cntbempty";
   }
  }
 if( isset($un) ) {
  if ($un == $usernames )  {
    $data["username"] = "inuse";
   }
  }
 if( isset($pswd) && isset($pswd2) ) {
  if( $pswd2 != "" && $pswd != $pswd2 ) {
    $data["password"] = "missmatch";
   }
  }
  if( isset( $em ) ) {
   if( $em != "" && !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST["email"] ) ) {
     $data["email"] = "notvalid";
   }
  }
 if(!empty($data))
 {
 echo json_encode($data);
 die;
 }
  else{
  $pswd = password_hash($pswd, PASSWORD_DEFAULT);
  $pswd2 = password_hash($pswd2, PASSWORD_DEFAULT);
  $stmt = $db->prepare("INSERT INTO users (username,first_name,last_name,email,password,password2) VALUES (:username,:first_name,:last_name,:email,:password,:password2)");  
  $stmt->execute( array(':username'=>$un,':first_name'=>$fn,':last_name'=>$ln,':email'=>$em,':password'=>$pswd,':password2'=>$pswd2));
  }
  if ($stmt->rowCount() == 1) {
    header("Location: login.php");
  } 
  else {
    echo "error";
  }
}
?>

解决方案

(document).ready(function(){


("form.register").change(function() {


.post("register.php",


这篇关于使用javascript和php注册表单。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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