viernes, 12 de julio de 2013

Hacer login con PHP y MySql


Pasos para crear un login con PHP y MySql:
Te puede interesar: Como tener un servidor web con apache y MySql  Es sobre esta herramienta que normalmente monto alguns pequeños proyectos.

  • Crear una base de datos.

Recomiendo que antes de programar, si hemos de utilizar bases de datos, sea éste el primero paso, debemos dedicar el tiempo suficiente en este paso, porque de la base de datos de un sistema depende su correcto funcionamiento, de nada me serviría tener un diseño espectacular pero si mi base de datos está mala. Ahora manos a la obra.

Nombre de la base de datos: db_blog.
Campos de la tabla administradores:


I
Si prefieres ejecutar una consulta MySql:



CREATE TABLE  `administradores` 
(
 `id_administrador` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 `nombre_administrador` VARCHAR( 60 ) NOT NULL ,
 `password` VARCHAR( 60 ) NOT NULL
) ENGINE = INNODB;





IMPORTANTE:
Es muy probable que el código genere a muchos algunos errores, esto posiblemente se deba a que no he utilizado la apertura del código php como se debe en todos los casos. Lo correcto es <?php, pero como repito algunas omito eso y solamente lo hago así: <? 
Algunas versiones de php pueden leer esto sin problema, pero es mejor hacerlo como lo mencione al principio. 
Si deseas aprender mas sobre esto, acá dejo un link de cristalab que lo explica muy bien
!Suerte!
  • login.php

Ahora que tenemos lista nuestra base de datos con la respectiva tabla comenzaremos a diseñar nuestro login, crearemos un archivo php que lo llamaremos login.php



<form action="validar_usuario.php" method="post">
 <table>
  <tr>
   <td>Usuario:</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="Iniciar Sesión" />
   </td>
  </tr>
</table>
</form>

  • Validar_usuario.php


una vez creado el archivo login.php, crearemos un nuevo archivo validar_usuario.php que es el cual no ayudará precisamente como su nombre lo indica, validar los datos introducidos en el formularios, Nota: El siguiente código está comentado(texto color verde) dando la explicación de cada parte importante sobre su funcionamiento".
<?php
/****************************************
**establecemos conexion con el servidor.
**nombre del servidor: localhost.
**Nombre de usuario: root.
**Contraseña de usuario: root.
**Si la conexion fallara mandamos un msj 'ha fallado la conexion'**/
mysql_connect('localhost','root','root')or die ('Ha fallado la conexión: '.mysql_error());

/*Luego hacemos la conexión a la base de datos. 
**De igual manera mandamos un msj si hay algun error*/
mysql_select_db('db_blog')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
 
/*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
**y los almacenamos en variables.*/
$usuario = $_POST["admin"];   
$password = $_POST["password_usuario"];

/*Consulta de mysql con la que indicamos que necesitamos que seleccione
**solo los campos que tenga como nombre_administrador el que el formulario
**le ha enviado*/
$result = mysql_query("SELECT * FROM administradores WHERE nombre_administrador = '$usuario'");

//Validamos si el nombre del administrador existe en la base de datos o es correcto
if($row = mysql_fetch_array($result))
{     
//Si el usuario es correcto ahora validamos su contraseña
 if($row["password"] == $password)
 {
  //Creamos sesión
  session_start();  
  //Almacenamos el nombre de usuario en una variable de sesión usuario
  $_SESSION['usuario'] = $usuario;  
  //Redireccionamos a la pagina: index.php
  header("Location: index.php");  
 }
 else
 {
  //En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
  ?>
   <script languaje="javascript">
    alert("Contraseña Incorrecta");
    location.href = "login.php";
   </script>
  <?
            
 }
}
else
{
 //en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
?>
 <script languaje="javascript">
  alert("El nombre de usuario es incorrecto!");
  location.href = "login.html";
 </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();
?>


  • Index.php:

Ahora necesitamos crear otro archivo que llamaremos index.php a la cual ingresaremos cuando hagamos un login correcto, imprimiremos un mensaje sencillo.
<?php
//creamos la sesión
session_start();
//validamos si se ha hecho o no el inicio de sesión correctamente
//si no se ha hecho la sesión nos regresará a login.php
if(!isset($_SESSION['usuario'])) 
{
  header('Location: login.php'); 
  exit();
}
 ?>
  <h1>BIENVENIDO</h1>
  <a href="logout.php">Cerrar Sesión</a>
 <?
?>



  • Logout.php:

Este archivo servirá para terminar la sesión.
<?php 
 //Crear sesión
 session_start();
 //Vaciar sesión
 $_SESSION = array();
 //Destruir Sesión
 session_destroy();
 //Redireccionar a login.php
 header("location: login.php");
?>

Bueno, espero de algo pueda servir este "how to" Dejo el link de descarga de la aplicación completa con el script sql, gracias por visitar mi blog.
Publicar un comentario