Espacio con cosas que deseo compartir, principalmente código fuente, sé que existen lugares ya dedicados a eso, pero a mi me gusta hacerlo de esta manera. Advertencia: Algunos códigos son básicos y solo tienen la intención de dar una idea de como hacer las cosas.
En este ejemplo usare la manera de hacerlo con una función constructora y el operador new para crear una instancia.
// Objeto propio que se llamara Usuario y creado con funcion constructora
function Usuario(id, nombre, correo)
{
this.id = id;
this.nombre = nombre;
this.correo = correo;
}
// Método que devuelve el nombre del usuario
Usuario.prototype.getNombre = function(){
return this.nombre;
}
// Creamos un objeto elUsuario de la siguiente forma
var elUsuario = new Usuario("001","Juan","juan.email@micorreo.com");
// Vamos obtener el nombre del usuario
console.log(elUsuario.getNombre());
Mas información y referencia:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"/>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
Código HTML del formulario, para darle un toque responsivo usamos Bootstrap
<form enctype="multipart/form-data" class="form-horizontal" id="form_valida_ajax" method="post" role="form">
<div class="form-group">
<label class="control-label col-sm-4" for="usuario">Usuario:</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="usuario" id="usuario" placeholder="Usuario">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4" for="password">Password:</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password" name="password" placeholder="Contraseña">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-8">
<button type="submit" id="btnvalidar" class="btn btn-default">Validar usuario</button>
</div>
</div>
</form>
Código Javascript para enviar los datos a PHP y validar los datos capturados de usuario y password.
$(function(){
$('#form_valida_ajax').on("submit", function(e){
e.preventDefault();
var respuesta = $.ajax({
url: "valida.php",
type: "post",
dataType: "json",
data: $(this).serialize()
});
respuesta.done(function(data)
{
alert("Usuario: " + data.usuario + " es " + data.acceso); // Recibo la respuesta desde PHP.
});
respuesta.fail(function( jqXHR, estatus )
{
alert( "Error: " + estatus );
});
});
});
Código PHP para recibir los datos enviados con Javascript y validar los datos capturados de usuario y password.
<?php
if(isset($_POST['usuario']) && isset($_POST['password'])) // Estan definidas las variables y no sea Null
{ // Los datos de los usuarios en un array asociativo clave valor, donde la clave es el nombre de usuario
// el valor es la contraseña previamente convertido con el algorito MD5
// Usuario: Juan Contraseña: Juan
// Usuario: Ramiro Contraseña: Ramiro
$Usuarios = array(
"Juan" => "92eaf3719159c372f3d50337e0a14f57",
"Ramiro" => "3622ecf2ffc9f3d1143ccfa8eabd27ea");
$resultado = array();
$resultado['acceso'] = 'no valido';
if(array_key_exists($_POST['usuario'], $Usuarios))
{
$pass = md5($_POST['password']); // Se calcula el hash md5 de la contraseña capturada
// Referencia: http://php.net/manual/es/function.md5.php
if(strcmp($pass, $Usuarios[$_POST['usuario']])==0) // Se compara la contraseña guardada con la
$resultado['acceso'] = 'valido'; // calculada y si es 0 son iguales
}
$resultado['usuario'] = $_POST['usuario'];
header('Content-type: application/json; charset=utf-8');
echo json_encode($resultado); // Se devuelve el nombre de usuario y el resultado de la validacion
exit;
}
else
{
header("Location: https://zerobytes.alwaysdata.net");
exit;
}
?>
Demo