Crearemos un formulario de login en PHP en 4 sencillos pasos. Necesitamos crear varios archivos y carpetas primero:
Paso 1: crear el archivo php.php y guardarlo en /application/controllers/
Paso 2: crear el archivo login.php y guardarlo en /application/views/
Paso 3: crear usuarios_model.php y guardarlo en /application/models/
Paso 4: crear la tabla mysql con algunos usuarios de prueba
Paso 1: Código para el controlador "php.php":
Código :
load->helper('form');
if(!isset($_POST['maillogin'])){ // Si no recibimos ningún valor proveniente del formulario, significa que el usuario recién ingresa.
$this->load->view('login'); // Por lo tanto le presentamos la pantalla del formulario de ingreso.
}
else{ // Si el usuario ya pasó por la pantalla inicial y presionó el botón "Ingresar"
$this->form_validation->set_rules('maillogin','e-mail','required|valid_email'); // Configuramos las validaciones ayudandonos con la librería form_validation del Framework Codeigniter
$this->form_validation->set_rules('passwordlogin','password','required');
if(($this->form_validation->run()==FALSE)){ // Verificamos si el usuario superó la validación
$this->load->view('login'); // En caso que no, volvemos a presentar la pantalla de login
}
else{ // Si ambos campos fueron correctamente rellanados por el usuario,
$this->load->model('usuarios_model');
$ExisteUsuarioyPassoword=$this->usuarios_model->ValidarUsuario($_POST['maillogin'],$_POST['passwordlogin']); // comprobamos que el usuario exista en la base de datos y la password ingresada sea correcta
if($ExisteUsuarioyPassoword){ // La variable $ExisteUsuarioyPassoword recibe valor TRUE si el usuario existe y FALSE en caso que no. Este valor lo determina el modelo.
echo "Validacion Ok
Volver"; // Si el usuario ingresó datos de acceso válido, imprimos un mensaje de validación exitosa en pantalla
}
else{ // Si no logró validar
$data['error']="E-mail o password incorrecta, por favor vuelva a intentar";
$this->load->view('login',$data); // Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
}
}
}
}
}
?>
Paso 2: Código para la vista "login.php":
Código :
Demo: ¿cómo hacer un login de usuarios en php?
".$error."";
}
echo form_error('maillogin');
?>
Datos de acceso (correspondiente a un usuario ya ingresado en la base de datos)
e-mail: diego@blogdephp.com
password: blogdephp
Requerimientos
Para poder implementar este script de login, se requiere el framework de php "Codeigniter"
(esta maravillosa herramienta nos ayuda a ahorrar mucho tiempo y esfuerzo en nuestros trabajos de programación php).
La empresa Solo10.com, cuando contratas un paquete de hosting anual desde u$s 49.95,
te ofrece la instalación y configuración inicial del Codeigniter gratis :-)
Este blog y demo se encuentran alojados en los servidores de Solo10.com.
Te recomiendo el servicio de hosting que ofrece esta empresa de hablahispana!
Paso 3: Código para el modelo usuarios_model.php
Código :
db->where('Usuario',$email); // La consulta se efectúa mediante Active Record. Una manera alternativa, y en lenguaje más sencillo, de generar las consultas Sql.
$query = $this->db->where('Password',$password);
$query = $this->db->get('Usuarios');
return $query->row(); // Devolvemos al controlador la fila que coincide con la búsqueda. (FALSE en caso que no existir coincidencias)
}
}
?>
Paso 4: Consulta Mysql para crear la tabla de usuarios
Código :
CREATE TABLE `Usuarios` (
`Id` INT NOT NULL AUTO_INCREMENT ,
`Usuario` VARCHAR( 50 ) NOT NULL ,
`Password` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `Id` )
) ENGINE = MYISAM ;
INSERT INTO `Usuarios` (
`Id` ,
`Usuario` ,
`Password`
)
VALUES (
NULL , 'diego@blogdephp.com', 'blogdephp'
);
Explicación del código para forms de login con usuario y contraseña en PHP
Se trata de un script que, mediante pocas líneas de código, te permite configurar un login de usuarios propio en tu página web.
Esta capacidad es sumamente importante y la necesitaremos en cualquier proyecto web que iniciemos. Puesto que seguramente existe cierta información y funciones que nos interesa ofrecer únicamente a usuarios registrados y no al resto del público.
Por ejemplo, si estamos haciendo un sistema web para un periódico, nos interesará que los periodistas puedan ingresar al sistema (mediante un usuario y password) y puedan ingresar noticias.... Por supuesto, esta función debería ser accesible únicamente por periodistas y no por un lector común.
Funcionalidades
Permitir acceso a determinada información y utilidades únicamente a determinados usuarios (aquellos que se encuentren registrados en una tabla de base de datos Mysql)
Mensaje de error cuando falta rellenar algún campo de la pantalla de acceso
Mensaje de error cuando los datos ingresados no coinciden con ningún usuario registrado en la base de datos.
Recordar los datos previamente ingresados por el usuario cuando éste no supera el login y tenemos que volver a presentarle la pantalla de acceso.
Explicación técnica
Como pueden observar, los códigos del script se encuentran con comentarios. Cada sentencia importante tiene su explicación de que función cumple. Lo que intentaremos ahora es hacer una explicación general de cómo funciona el script; como si fuera un cuento...
Comencemos con la pantalla de acceso "login.php", donde el usuario podrá ingresar sus datos (usuario y password). Recordemos que todo lo que sea interacción con el usuario (entrada y salida de datos) lo trabajamos con las vistas (capa presentación).
Lo importante aquí es la sentencia
Código :
donde creamos nuestro formulario html y especificamos que sus datos deben ser enviados y procesados por el método "login" del controlador "php". La sentencia form_open es de CodeIgniter.
Otro punto importante de la vista es cuando creamos los campos (serían las cajas de texto donde el usuario podrá ingresar los datos):
Código :
No hay comentarios:
Publicar un comentario