como validar un usuario con perl??,comparandolo con 1 archivo txt.Sorry,no hay foro d perl
Tengo que realizar un ejercicio para clase y lo he intentado de muchas formas pero no me acaba d funcionar. Necesito ayuda please!!!!!
El ejercicio consiste en validar un usuario(introducir un login y un passord) en windows y compararlo con dos archivos de texto(uno contiene el login y el otro el password). Si el login y el password coincide muestra una pagina q da un mensaje d bienvenida, en caso contrario la pagina muestra usuario incorrecto. El codigo que he utilizado es el siguiente(Tambien he utilizado un archivo donde se supone que se guardan los archivos):
#!/usr/bin/perl
if($ENV{\'REQUEST_METHOD\'}eq "POST")
{
read(STDIN,$entrada,$ENV{\'CONTENT_LENGTH\'});
}
elsif($ENV{\'REQUEST_METHOD\'}eq "GET")
{
$entrada=$ENV{\'QUERY_STRING\'};
}
else
{
$entrada=$ARG[0];
}
foreach(split(/\&/,$entrada))
{
($clave,$valor)=split(/=/,$_);
$clave=~ tr/+/ /;
$clave=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
$valor=~ tr/+/ /;
$valor=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
$parametro{$clave}=$valor;
}
$user=\'usuario1\';
$pass=\'user1\';
$pathuser = "user.txt";
$pathuser =~ s/%2F/\//g;
$pathpass = "pass.txt";
$pathpass =~ s/%2F/\//g;
$guarda = "guarda.txt";
$guarda =~ s/%2F/\//g;
@listauser;
@listapass;
open(ENTRADA, "$guarda");
while($linia=){
$users=$linia;
}
close(ENTRADA);
open(USUARI,"$pathuser");
for($i=1;$i;
$listauser[$i]=$linia;
chomp($listauser[$i]);
}
close (USUARI);
open(PASS,"$pathpass");
for($i=1;$i;
$listapass[$i]=$linia2;
chomp($listapass[$i]);
}
close (PASS);
$correcto=1;
for($aux=1;$auxUsuario correcto$user";
print "Usuario autentificado";
print "Eres el usuario $user";
$correcto=0;
}
}
}if($correcto==1){print"Usuario incorrecto";
}
Supongo que se podrá hacer de froma más facil, además lo de crear el fichero con los usuarios registrados no hace falta.
El ejercicio consiste en validar un usuario(introducir un login y un passord) en windows y compararlo con dos archivos de texto(uno contiene el login y el otro el password). Si el login y el password coincide muestra una pagina q da un mensaje d bienvenida, en caso contrario la pagina muestra usuario incorrecto. El codigo que he utilizado es el siguiente(Tambien he utilizado un archivo donde se supone que se guardan los archivos):
#!/usr/bin/perl
if($ENV{\'REQUEST_METHOD\'}eq "POST")
{
read(STDIN,$entrada,$ENV{\'CONTENT_LENGTH\'});
}
elsif($ENV{\'REQUEST_METHOD\'}eq "GET")
{
$entrada=$ENV{\'QUERY_STRING\'};
}
else
{
$entrada=$ARG[0];
}
foreach(split(/\&/,$entrada))
{
($clave,$valor)=split(/=/,$_);
$clave=~ tr/+/ /;
$clave=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
$valor=~ tr/+/ /;
$valor=~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;
$parametro{$clave}=$valor;
}
$user=\'usuario1\';
$pass=\'user1\';
$pathuser = "user.txt";
$pathuser =~ s/%2F/\//g;
$pathpass = "pass.txt";
$pathpass =~ s/%2F/\//g;
$guarda = "guarda.txt";
$guarda =~ s/%2F/\//g;
@listauser;
@listapass;
open(ENTRADA, "$guarda");
while($linia=){
$users=$linia;
}
close(ENTRADA);
open(USUARI,"$pathuser");
for($i=1;$i;
$listauser[$i]=$linia;
chomp($listauser[$i]);
}
close (USUARI);
open(PASS,"$pathpass");
for($i=1;$i;
$listapass[$i]=$linia2;
chomp($listapass[$i]);
}
close (PASS);
$correcto=1;
for($aux=1;$auxUsuario correcto$user";
print "Usuario autentificado";
print "Eres el usuario $user";
$correcto=0;
}
}
}if($correcto==1){print"Usuario incorrecto";
}
Supongo que se podrá hacer de froma más facil, además lo de crear el fichero con los usuarios registrados no hace falta.
