abr 23, 2009

Enviado por en PHP

Sistema sencillo de login en PHP

En esta entrada veremos como crear un sistema de login el cual pida una contraseña, a cada pagina que especifiquemos en PHP y recordar contraseña por medio de una cookie. Con cifrado md5

lock

Pues basicamente este script se incorpora en 4 partes:

  • Sistema de inicio de sesion (llamado login de ahora en adelante)
  • Sistema de cerrar sesion (llamado logout de ahora en adelante)
  • Creador de Cookie
  • Pagina que necesite que estes login

Teoria:

En pocas palabras se supone que uno va a escribir una contraseña en la pagina de login, despues de eso te va a redirigir a la pagina que necesite contraseña, si no teines contraseña te regresara al login, y también una pagina destinada para logout.

Login.php

Basicamente lo que se va a hacer aqui es una comprobación de variables, comparar la contraseña establecida (y encriptada automaticamente en md5) con lo que sea que haya escrito el usuario (tambien codificado en md5), y en caso de ser iguales crear la etiqueta de la cookie que le permite acceder a test.php o en caso contrario mandar una advertencia mediante javascript.

<?php
session_start(); //crea la cookie
if(isset($_POST['login']))
{

$completa = $_POST['pass'];
$comparar = md5 ($completa); //codifica lo escrito en md5
$clave = 'kernelerror'; //Reemplazar por tu contraseña
$final = md5 ( $clave );  //la codifica md5
if ( $comparar == $final ) {
    $_SESSION['listo'] = true;
    header('Location: test.php'); //redirige a la pagina despues de inicias sesion
    exit;
} else
{
?>
<script type="text/javascript">
<!--
alert('Contraseña Incorrecta')
//-->
</script>
<?php
}
}
//continua en el siguiente bloque?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Identificate </title>
</head>
<body>
<center>
Palabra Clave:<br>
<form method="post" action="">
<input type="password" name="pass">
<input type="submit" name="login" value="INICIAR SESION">
</form>
</center>
</body>
</html>

Cookie.php

Aqui lo que se hace es ver si existe la cookie creada en el login y si es positivo continuar, o en caso negativo regresar a una pagina deseada.

<?php
session_start();
if (!isset($_SESSION['listo'])
    || $_SESSION['listo'] !== true) {
    header('Location: login.php'); //Redirige al inicio de sesion en caso de que no tengas la cookie
    exit;
}
?> 

Test.php

<?php session_start(); require 'cookie.php'; //continua en el siguiente bloque?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
   <title>Estas dentro</title>
</head>

<body>
<h1> SI puedes ver esto, lograste iniciar sesion</h1>
<br />
<a href="logout.php">Cerrar sesion</a><a href="http://kernelerror.net">Regresar a la entrada</a>

Este es un pequeño archivo para comprobar que si funciona el login (ver que sea requerido el cookie).

Logout.php

<?php
session_start();
if (isset($_SESSION['listo'])) {
   unset($_SESSION['listo']);
}
header('Location: login.php');
exit;
?> 

Con este archivo desactivas la cookie asi forzando a volver a ingresar los datos si quieres ver el contenido con cookie.php incluido.

Acontinuacion el ejemplo
(La password es kernelerror)

    Posts Relacionados

    1. uhmm cual es mejor usar COOKIES o SESSIONES???

      Usando Firefox 3.0.16 Firefox 3.0.16 en Windows Server 2003 Windows Server 2003

    Dejar una respuesta

    Debes ser Alojarse para enviar un comentario.