Iniciar sesión

Login php

Rodrigo

Traducido por Rodrigo

Creado 2014-07-06 20:50:47 Modificado 2014-07-06 22:55:54

Login es el proceso con el que controlamos el acceso de usuarios, a veces sólo tenemos un login sin control de acceso para la acplicación, me refiero sin grupos; administradores, moderador, usuarios básicocs etc... cuando los administradores tienen más permisos que los moderadores, puedes tener una aplicación de escritorio o un login en un aplicación web la cual usa varibles de sesión, ese es el punto de este tutorial

En este tutorial, vamos a desarrollar un login php usando variables de seeisón

este tutorial fue escrito usando el siguiente equipo:

  • Hardware:           laptop Thinkpad E430 Intel I5, 4gb Ram, 500gb HDD
  • SO:                    x86_64 GNU/Linux Ubuntu 14.10
  • Kernel:               3.13.0-29-generic
  • IDE/Text editor:   Zend Eclipse for PHP Developers
  • PHP:                   PHP 5.4.16 (cli) (built: Jun 24 2013 12:08:02) 
  • BD:                     Mysql 5.5.31
  • Cliente MySql:      PhpMyadmin 4.0.4.1
  • Navegador:         Chromium Version 34.0.1847.116 Ubuntu 14.04 aura (260972)

 

1.- Creando la bd:

Primero necesitamos crear la base de datos para trabajar en nuestro login, tomemos el siguiente script y ejecutémoslo en mysql

CREATE DATABASE tutorial;
USE tutorial;
 
CREATE TABLE users(
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(45) NOT NULL,
   birthdate DATE NOT NULL,
   password VARCHAR(45) NOT NULL
);
 
INSERT INTO users(name, birthdate, password)VALUES('Ocelot', '1944-06-06','revolver');

2.- Creando la página index:

Una vez creada la base de datos, podemos crear nuestro index.php el cual los datos anteriores, creemos las siguientes páginas dentro de la carpeta phplogin  (crea la carpeta) 

<?php
//we put the below code to work with php sessions
session_start();
//now we validate if the session->usuario variable is within
//if not we redirect to login form
if(!isset($_SESSION['usuario'])) 
{
  header('Location: login.php'); 
  exit();
}
 ?>
  <h1>Welcome <?php echo $_SESSION['usuario']?></h1>
  <a href="logout.php">Logout</a>
 <?
?>

3.- Creando la página de login:

Esta es sólo el formulario de login de login.php

<form action="validar_usuario.php" method="post">
<fieldset>
	<legend>
		Login:
	</legend>
 <table>
  <tr>
   <td>User:</td>
   <td><input name="admin" required="required" type="text" /></td>
  </tr>
  <tr>
   <td>Password:</td>
   <td><input name="password_usuario" required="required" type="password" /></td> 
  </tr>
  <tr>
   <td colspan="2"><input name="iniciar" type="submit" value="Login" /></td>
  </tr>
</table>
</fieldset>
</form>

4.- Creando la página de validación:

Esta es la página de validación, esta página valida los datos y redirecciona a la página exitosa o al login de nuevo

<?php
//db connection
mysql_connect('127.0.0.1','root','root')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('tutorial')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
$usuario = $_POST["admin"];//variables from the form
$password = $_POST["password_usuario"];
//first we do the query for find the user, then we compare the passwords
$result = mysql_query("SELECT * FROM users WHERE name = '$usuario'");
if($row = mysql_fetch_array($result))
{     
//if the user exists then we compare the passwords
 if($row["password"] == $password)
 {
  session_start();  
  //We save the $user variable (could be an object) in the session variable usuario
  $_SESSION['usuario'] = $usuario;  
  header("Location: index.php");  
 }
 else
 {
  ?>
   <script languaje="javascript">
    alert("Incorrect password");
    location.href = "login.php";
   </script>
  <?
            
 }
}
else
{
//incorrect username
?>
 <script languaje="javascript">
  alert("Incorrect username");
  location.href = "login.php";
 </script>
<?   
        
}

//Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
mysql_free_result($result);

/*Mysql_close() se usa para cerrar la conexión a la Base de datos y es 
**necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
**programar una aplicación que tendrá muchas visitas ;) .*/
mysql_close();
?>

5.- Creando la página de logout:

Este código sólo destruye la sesión y redirecciona hacia al login

<?php 
 session_start();
 $_SESSION = array();
 //we destroy the session
 session_destroy();
 header("location: login.php");
?>

6.- Login:

Hasta aquí ya hemos terminado, vamos a la página index y veamos que pasa, vamos a http://127.0.0.1/loginphp, verás la siguiente página

logueemosnos usando nuestro usuario y contraseña; ocelot => revolver

 

si las cosas van bien, accederemos a la página index, sino, veremos la alerta de error

 

 

 

Descárgalo en https://drive.google.com/file/d/0BwOqSob-RrBOaGpwRk9RRGJPN2M/edit?usp=sharing

7.- Conclusión:

Login, permisos y areas restringidas, son siempre necesarias en un sitio web o una aplicación compartida, deberías tener administradores y no administradores para usar el sitio apropiadamente

8.- Links de referencias:




comments powered by Disqus