2014-09-18 26 views
-1

我需要使用js創建驗證,以便當您要顯示錯誤消息時不重新加載頁面,以便視頻背景不會停止。如何使用javascript和php創建驗證mysql

這就是我現在所擁有的。

HTML:

<form class="col-lg-4 col-lg-offset-4" method="post" > 
    <p class="error"><?php echo $mensajeLogin; ?></p> 
    <div class="form-group"> 
     <input type="text" class="form-control" placeholder="Nombre de usuario" name="user" value="<?php if(!empty($_POST['user'])) { echo $_POST['user']; } ?>"/> 
     <span class="input-icon fui-user"></span> 
    </div> 
    <div class="form-group"> 
     <input type="password" class="form-control" placeholder="Contraseña" name="pass" value="<?php if(!empty($_POST['pass'])) { echo $_POST['pass']; } ?>"/> 
     <span class="input-icon fui-lock"></span> 
    </div> 

    <input class="btn btn-hg btn-primary" type="submit" name="enviar_login" value="Iniciar sesión"> 
</form> 

PHP:

function VerificarLogin($cTabla,$cUsuario,$cPass) { 

    $conn = ConectarBD(); 
    $vConsulta="SELECT ID, usuario, id_cuenta, email FROM $cTabla WHERE usuario like '$cUsuario' and pass like '$cPass' "; 

    if ($stmt = mysqli_prepare($conn, $vConsulta)) { 

     /* execute statement */ 
     mysqli_stmt_execute($stmt); 
     /* bind result variables */ 
     mysqli_stmt_bind_result($stmt, $id, $user, $id_cuenta, $email); 

     /* fetch values */ 
     $vListado = array(); 
     $i=0; 
     while (mysqli_stmt_fetch($stmt)) { 
      //printf ("%s (%s)\n", $id, $provincia); 
      $vListado[$i]['id']=$id;   
      $vListado[$i]['user']=$user; 
      $vListado[$i]['id_cuenta']=$id_cuenta; 
      $vListado[$i]['email']=$email; 
      $i++; 
     } 


     /* close statement */ 
     mysqli_stmt_close($stmt); 
    } 
    /* close connection */ 
    mysqli_close($conn); 

    return $vListado; 
} 

$mensajeLogin = ''; 

if (!empty($_POST['enviar_login'])) { 

    $_POST['user']=trim($_POST['user']); 

    $login=VerificarLogin('usuarios',$_POST['user'],$_POST['pass']); 


    if (empty($_POST['user']) && empty($_POST['pass'])) { 
    $mensajeLogin = "Complete los campos.<br />"; 

    } elseif (empty($_POST['pass'])) { 
    $mensajeLogin.="Debe ingresar una contraseña.<br />"; 

    } elseif (empty($login)) { 
    $mensajeLogin = 'El usuario y/o contraseña es incorrecto'; 

    } else { 

    $_SESSION['id_user']=$login[0]['id']; 
    $_SESSION['nivel']=$login[0]['id_cuenta']; 
    $_SESSION['user']=$login[0]['user']; 
    $_SESSION['email']=$login[0]['email']; 
    header('Location: panel/admin.php'); 
    exit; 
    } 

} 

我只需要添加JavaScript。

在線示例here

+0

非常好!那麼添加JavaScript對你來說應該不會太難。做一些嘗試,讓我們知道如果你不能讓你的JavaScript **代碼工作! – Ohgodwhy 2014-09-18 16:20:09

+0

使用'mysqli'時,您應該使用參數化查詢和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值來實現此目的,因爲您將創建嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman 2014-09-18 16:24:12

+0

需要一些代碼來指導我,知道一點也沒有什麼javascript @Ohgodwhy – nicogaldo 2014-09-18 16:31:51

回答

0

使用jQuery及其$ .post方法發送數據並接收結果。

不管怎樣,永遠不要依賴JS驗證,總是在PHP代碼中過濾輸入。