Sistema de usuarios sencillísimo en PHP

26 10 2009

Me he permitido la licencia de escribir un sencillísimo sistema de login de usuario en php (más sencillo aún que el mecanismo de un botijo), con mis pocos conocimientos de php; pero que puede que ayude a algún otro aprendiz como yo.

El sistema es el siguiente: está compuesto por 4 archivos:

- usuarios.txt
- read.php
- new2.html
- login.php

Bien, como inicialmente es una prueba únicamente, no se trató de hacer un sistema de usuarios orientado a una base de datos MySQL por ejemplo, sino más bien usar un simple archivo txt protegido para almacenar la lista de usuarios y contraseñas. Evidentemente, al ser una prueba inicial, sobre la que iré investigando y avanzando, no está implementado el sistema de protección del archivo de usuarios, pero en la revisión que le dé, lo implementaré.

Aparte del archivo usuarios.txt, se localizan los archivos: read.php, módulo que se encarga de parsear las líneas de usuarios del archivo usuarios.txt; new2.html, simplemente la página del formulario en HTML; y login.php, donde realmente se realiza el trabajo sucio. Adjunto el código de login.php para hacer algún comentario, puesto que los otros son completamente triviales:

–login.php

<HTML>
<BODY>
<?
$user = $_POST["usuario"]; 
$pass = $_POST["password"]; 
$login = $_POST["login"]; 
$registro = $_POST["registro"]; 
$usuariomd5 = md5($user);
$passmd5 = md5($pass);
$encontrado = False;
$novalido = (($user=="") || ($pass==""));

echo "Nombre: $user <br>";
echo "Contraseña: $pass <br>";

$listado = fopen("usuarios.txt","r+");

if((!$listado)) {
  echo "No pudo abrirse el archivo<br>";
} 
else if ($listado && !$novalido) {
  while(!feof($listado) && !$encontrado) {
    $leer_linea = fgets($listado,1024); //Lee cada línea de usuario
	include_once("read.php");
	datos($leer_linea);
	if(($usuariomd5 == $uleido) && ($passmd5 == $pleido)) {
	  $encontrado = True;
	  if (isset ($login)) echo "Bienvenido <br>";
	  else if (isset ($registro)) echo "Ya estás registrado";
	} 
  }
  fclose($listado);
  if (!$encontrado) {
    if (isset ($registro)){
	  $listado = fopen("usuarios.txt","a+");
	  fwrite ($listado, "\r\n$usuariomd5".";"."$passmd5");
	  fclose($listado);
	  echo "Acabas de registrarte<br>";
	}
	elseif (isset ($login)) echo "No estás registrado.<br>";
  }
}
if ($novalido) echo "Usuario o contraseña en blanco.<br>"
?>
</BODY>
</HTML>

Como veis, el funcionamiento consiste en obtener el usuario y contraseña obtenidos en el formulario en md5, abrir el archivo, comprobar con el módulo parseador que coinciden, y en función de si el botón pulsado es el de registro o login, lanzar un mensaje u otro.

Iré perfeccionándolo y añadiendo funcionalidades, por ejemplo, sesiones por cookies. Recordad que es un sistema muy rudimentario y que por supuesto, no vale para páginas web con un volumen de usuarios registrados muy grande, sino para pequeños apartados de páginas web para los cuales crear una base de datos sería algo excesivo.

Descarga: Sist_login_v1.zip [Megaupload]
Un saludo!

Advertisement

Acciones

Información

2 respuestas

11 11 2009
Viktor

supongo que esto se puede aplicar a un blog…pero necesitaria que me explicases como usar y en que consisten los otros 3 archivos

24 06 2010

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s




Seguir

Get every new post delivered to your Inbox.