Lenguaje PHP

Crear login usando PHP PDO y MySQL

En esta publicación hablaremos un poco acerca de iniciar sesión en su sistema web. Es decir, un sistema de autenticación, utilizaremos PDO. Por lo tanto, PDO es una extensión de PHP que nos permite implementar líneas de código que sea portable en varias y diferentes bases de datos. Crear login usando PHP PDO y MySQL.

¿Necesitas un sistema de login más segura?

Aquí te dejaremos el sistema ya implementado para que lo puedan usar.

Nociones básicas que debes de conocer antes de implementar el sistema:

Crear login usando PHP PDO y MySQL

Si usted recién está incursionando en el mundo del php, entonces esta publicación es para usted.

Aquí vamos a exponer un sistema de login simple usando la extensión de PHP y PDO. Por lo tanto,  al final de esta explicación usted debe ser capaz de entender la conexión de PDO con MySQL.

Los datos del usuario están almacenados en la base de datos llamado «php_loginpdo» y su tabla tiene como nombre «usuarios«. Ahora, en esa tabla se almacena las credenciales del usuario como ser el nombre de usuario y contraseña respectivamente que luego mediante el uso de un formulario podemos verificar esos datos.

Para iniciar sesión en la aplicación web esta información se almacena en una sola variable de sesión y con el apoyo de esta variable de sesión disponible podemos aplicar en todas las páginas disponibles de la aplicación web.

Sin embargo, cuando la variable de sesión expira, se desconectará de forma automática de la aplicación.

Partes del sistema de login PDO

  1. La tabla «usuarios» y su contenido
CREATE TABLE `usuarios` (
  `id` int(11) NOT NULL,
  `nombres` varchar(200) CHARACTER SET latin1 DEFAULT NULL,
  `usuario` varchar(250) DEFAULT NULL,
  `password` varchar(250) CHARACTER SET latin1 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

--
-- Volcado de datos para la tabla `usuarios`
--

INSERT INTO `usuarios` (`id`, `nombres`, `usuario`, `password`) VALUES
(1, 'Administrador', 'admin', '12345');

ALTER TABLE `usuarios`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

ALTER TABLE `usuarios`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

2. Fichero IniciarSesion.php

Esta sección está enfocada al formulario en el cual el usuario realizara una verificación de sus credenciales.

    <div class="col-12 col-md-6"> 
      <!-- Contenido --> 
                <?php  
                if(isset($message))  
                {  
                     echo '<label class="text-danger">'.$message.'</label>';  
                }  
                ?>  
<form method="post">  
                <div class="form-group">
    <label for="Usuario">Usuario</label>
    <input type="text" name="usuario" class="form-control" placeholder="Ingrese usuario" />  
				</div>
  
                     <div class="form-group">
    <label for="Contraseña">Contraseña</label>
     <input type="password" name="password" class="form-control" placeholder="Ingrese Contraseña" />  
				</div>
                      
                     <br />  
                     <input type="submit" name="login" class="btn btn-info" value="Iniciar Sesion" />  
</form>  
            
      <!-- Fin Contenido --> 
    </div>

3. Archivo «conexion.php»

<?php  
 $hostBD = "localhost";  
 $userBD = "root";  
 $passBD = "root";  
 $dataBD = "php_loginpdo";  
 $message = "";  
 ?>

4. Panel de control

  <div class="row">
    <div class="col-12 col-md-6"> 
      <!-- Contenido -->
<?php 
 if(isset($_SESSION["usuario"]))  
 {  
      echo '<h3>Login Exitoso, Bienvenido - '.$_SESSION["usuario"].'</h3>';  
      echo '<br /><br /><a href="CerrarSesion.php"><div class="btn btn-danger">Cerrar Sesion</div></a>';  
 }  
 else  
 {  
      header("location:IniciarSesion.php");  
 }  
 ?>
             
      <!-- Fin Contenido --> 
    </div>
  </div>
  <!-- Fin row -->

5. Cerrar la sesión

 <?php   
 //CerrarSesion.php  
 session_start(); 
 // Eliminamos la sesion activa y redirige al login 
 session_destroy();  
 header("location:IniciarSesion.php");  
 ?>
Crear login usando PHP PDO y MySQL
Crear login usando PHP PDO y MySQL

CONCLUSIÓN

Si en tu sistema todavía manejas la extensión «mysql_connect» te comentare que esta extensión fue declarada obsoleta en la versión PHP 5.5 y eliminada definitivamente en la versión PHP 7. En su reemplazo se recomienda el uso de las extensiones MySQLi o PDO_MySQL.

Sin embargo, si lo utilizas el servidor podría arrojar un error, desconociendo esa extensión por completo y más aún si de seguridad se trata. Por lo tanto, es un grave peligro el uso de estas funciones obsoletas.

Por lo tanto, en este artículo estamos priorizando el uso del PDO para que ustedes tengan la seguridad debía para sus sistemas web.

DESCARGA

Descargar Código Fuente

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.
Botón volver arriba