Zumbe.net

Comenzando a programar una web

Autentificación de Usuario con Base de datos

Usando PHP y MySQL hacemos un sistema de autentificación sencillito. Comprueba los datos, y si son correctos crea un cookie y redirecciona.

Después de una página donde se presente un formulario con, al menos, los campos nombre y contrasena, se envía esta información por POST a este archivo. Si algún dato no es correcto se redirige a index.php con una variable enviada por get, que indica el error que ha ocurrido.

Para más información leer el script.

Código: php
  1. <?php
  2. $tabla = ‘nombre_tabla’ ;
  3.  
  4. if(empty($_POST[‘nombre’]) OR empty($_POST[‘contrasena’]) )
  5. {
  6.     // redirecciona a index.php Se envia la variable de tipo GET "errno" con valor 1.
  7.     header("Location: index.php?errno=1") ; //errno 1 = No se han rellenado todos los datos
  8. }
  9. else
  10. {
  11.     $result = mysql_query("SELECT * FROM ".$tabla." WHERE nombre=’$_POST[nombre]’") ;
  12.    
  13.     if(mysql_num_rows($result)==0)
  14.     {
  15.         // redirecciona a index.php Se envia la variable de tipo GET "errno" con valor 2.
  16.         header("Location: index.php?errno=2") ; //errno 2 = Nombre incorrecto
  17.     }
  18.     else
  19.     {
  20.         $user = mysql_fetch_array($result);
  21.        
  22.         if($user[‘contrasena’] != $_POST[‘contrasena’])
  23.         {
  24.             // redirecciona a index.php Se envia la variable de tipo GET "errno" con valor 3.
  25.             header("Location: index.php?errno=3") ; //errno 3 = Clave incorrecta
  26.         }
  27.         else
  28.         {
  29.             setcookie(‘user’,$_POST[‘nombre’],time()+(60*60*24*30*12)); //Un Año de cookie!!
  30.             header("Location: dentro.php"); // Ahora nos vamos a un archivo, pero ya con la cookie
  31.         }
  32.     }
  33. }
  34. ?>

Si la autentificación ha tenido éxito se crea una cookie y se redirecciona a dentro.php.

(Añadido el 26 de mayo)

Para desloguear en este sistema no tenemos más que poner un enlace a una página, a la que podemos llamar logout.php con el siguiente código:

Código: php
  1. <?
  2. setcookie(‘user’,false); //Elimino la cookie
  3. header("Location: index.php") //Redirijo a index.php
  4. ?>

15 Mayo 2006 · Tags Sin categoría |

3 Comentarios

Pablo dice:

Hola!
Te hago una consulta, yo soy nuevo aca en esto del PHP, y por eso no se mucho.
Las bases de datos, ¿no pueden estar en Acces, no? Si no es así, en que programas puedo armar las bases de datos para que funcionen correctamente en PHP?
Por otro lado, como podría poner para que en vez de redirigir siempre a dentro.php, me dirija, según el usuario, a una página diferente? Tendría que agregar un campo mas a la BD con el nombre de la pag a que se redirecciona? y dp como se introduciría dentro del header? un saludo, muchas gracias! Espero tu respuesta ansioso!

Pablo.


2 de Julio del 2008 a las 22:49
Manuel dice:

La podrias realizar en MySQL, o puedes descargarte el appserver es gratuito y ese ya contiene todo, no tienes que configurar nada, te deja tu propio servidor, si tienes dudas escribeme. Hasta pronto


14 de Julio del 2008 a las 15:28
xxx dice:

xxx


13 de Agosto del 2008 a las 6:35

Escribe un comentario!

Buscador

2005-2007 Zumbe.net Creada por Alex Barros con WordPress - Licencia Reconocimiento - RSS