Foros del Web » Programando para Internet » PHP »

Problema para validar usuario en fichero externo "txt"

Estas en el tema de Problema para validar usuario en fichero externo "txt" en el foro de PHP en Foros del Web. Hola a todos, he creado el siguente código que recibe dos variables de un formulario y consulta si (usuario y contraseña) están en un fichero ...
  #1 (permalink)  
Antiguo 11/12/2006, 05:21
Avatar de Funghi  
Fecha de Ingreso: marzo-2004
Mensajes: 67
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Problema para validar usuario en fichero externo "txt"

Hola a todos, he creado el siguente código que recibe dos variables de un formulario y consulta si (usuario y contraseña) están en un fichero "txt" para validar el acceso a usuarios.

El problema está en que sólo me valida el último usuario de la lista, si hay uno funciona ok, pero cuando hay más falla.

Este es el código:

Código:
<?php

$usuario = $_POST["usuario"];
$password = $_POST["password"];

define("ARCHIVO_USUARIOS", "usuarios.txt");

// Mostramos contenido del archivo

$archivo = fopen(ARCHIVO_USUARIOS, "r") or die("Error - No fue poible abrir el archivo");

echo "<table border='1'>";
	  
while ($linea = fgets($archivo))
{
  $partes = explode('|', trim($linea));
    	
    echo "<tr>";
	
	for ($i=0; $i<=3; $i++)
	{
    echo "<td>$partes[$i]</td>";
	}
	
	echo "</tr>";
}
echo "</table>";


	  if (($usuario == $partes[0]) && ($password == $partes[1]))
      {
      echo "Has sido validado correctamente en la aplicación";
	  }
	  else
	  {
	  echo "El nombre de usuario o contraseña no es correcto";
	  }

fclose($archivo);

?>
Los valores almacenados en el txt siguen el siguiente formato:

usuario01|password01|[email protected]|6090000 01
usuario02|password02|[email protected]|6090000 02
usuario03|password03|[email protected]|6090000 03
usuario04|password04|[email protected]|6090000 04
usuario05|password05|[email protected]|6090000 05

¿Alguna idea?

Gracias por vuestra ayuda!
  #2 (permalink)  
Antiguo 11/12/2006, 08:42
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Problema para validar usuario en fichero externo "txt"

Prueba a ver si funciona así:

Código PHP:
<?php

$usuario 
$_POST["usuario"];
$password $_POST["password"];

define("ARCHIVO_USUARIOS""usuarios.txt");

// Mostramos contenido del archivo

$archivo fopen(ARCHIVO_USUARIOS"r") or die("Error - No fue poible abrir el archivo");
      
$encontrado=false;
while (
$linea fgets($archivo))
{
  
$partes explode('|'trim($linea));
        
  if ((
$usuario == $partes[0]) && ($password == $partes[1]))
  {
    
$encontrado=true;
    break;
  }
}

if (
$encontrado==true){
   echo 
"Has sido validado correctamente en la aplicación";
} else {
   echo 
"El nombre de usuario o contraseña no es correcto";
}
 
fclose($archivo);

?>
Un saludo.

Última edición por holahola; 11/12/2006 a las 08:48 Razón: mejora
  #3 (permalink)  
Antiguo 11/12/2006, 08:51
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Problema para validar usuario en fichero externo "txt"

Podrías hacer algo como esto:
Código PHP:
<?php
$usuario 
$_POST["usuario"];
$password $_POST["password"];

// convertimos todos los caracteres enviados a minúsculas para así compararlos
$usuario strtrstrtolower$usuario ), "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ""àáâãäåæçèéêëìíîïðñòóôõöøùüú" );
$password strtrstrtolower$password ), "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ""àáâãäåæçèéêëìíîïðñòóôõöøùüú" );

$ruta'usuarios.txt'// ruta hacia el fichero txt

$lee_txt readfile$ruta ); // leemos el archivo y cada línea será guardada como un array

$valida 0;

foreach( 
$lee_txt as $linea )
{
   
$linea explode'|'$linea ); // separamos en partes cada línea para manipularlo a nuestro antojo

   
if ( ( $usuario == $linea[0] ) && ( $password == $linea[1] ) )
   {
      
$valida 1;
      break;
   }
}

$valida == ? echo "El nombre de usuario o contraseña no es correcto" : echo "Has sido validado correctamente en la aplicación";
?>
No lo he probado aún pero creo que en teoría te debería funcionar, además que me parece que antes de hacer todo esto deverías validar primero que el $usuario y $password no sean campos vacios para no leer todo el demás codigo de ser así. Espero que esto te haya servido o por lo menos te de una idea. Suerte
  #4 (permalink)  
Antiguo 11/12/2006, 10:23
Avatar de Funghi  
Fecha de Ingreso: marzo-2004
Mensajes: 67
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Problema para validar usuario en fichero externo "txt"

Gracias!

El primero código funciona a la perfección, ya veo donde cometí el error. El segundo aun no lo he probado pero pinta bien.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:17.