2014-09-18 1 views
-1

Je dois créer une validation avec js pour que la page ne se recharge pas lorsque vous voulez afficher le message d'erreur, afin que l'arrière-plan vidéo ne s'arrête pas.Comment créer une validation mysql avec javascript et php

C'est ce que j'ai pour l'instant.

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; 
    } 

} 

Je ne dois ajouter javascript.

Exemple en ligne here.

+0

Excellent! L'ajout du JavaScript ne devrait pas être trop difficile pour vous alors. Faites quelques tentatives et faites-nous savoir si vous ne pouvez pas faire fonctionner votre code ** JavaScript **! – Ohgodwhy

+0

Lorsque vous utilisez 'mysqli' vous devriez utiliser des requêtes paramétrées et [' bind_param'] (http://php.net/manual/fr/mysqli-stmt.bind-param.php) pour ajouter des données utilisateur à votre requête. ** N'utilisez PAS ** l'interpolation de chaîne pour y parvenir car vous allez créer des [bogues d'injection SQL] sévères (http://bobby-tables.com/). – tadman

+0

besoin d'un code pour me guider, savoir peu et rien javascript @ Ohgodwhy – nicogaldo

Répondre

0

Utilisez jQuery et sa méthode $ .post pour envoyer des données et recevoir des résultats.

De toute façon, ne comptez jamais sur la validation JS, toujours filtrer l'entrée en code PHP.

Questions connexes