elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Login PHP contra un fichero txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Login PHP contra un fichero txt  (Leído 1,965 veces)
Oshrik

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Login PHP contra un fichero txt
« en: 27 Diciembre 2012, 21:36 pm »

Hola a todos/as,
ante todo daros las gracias.
He estado probando un aporte que lipman corrigio en Febrero, de hecho es el mismo,y probandolo tal cual solo me sale la pantalla en blanco al darle al botón enviar. Estuve imprimiendo por pantalla el valor de la variables en cada traza del código y el valor es el mismo que el que hay en el fichero. Pero toqueteando aqui y allá solo consegui que me pusiera false, a pesar, de que los print daban el valor del txt.
Volví a partir de 0, 4 veces, llegando al mismo resultado. Y no se que está mal. Os colgare todos los ficheros que he creado.
Como no me funcionó ese código no he ido más allá.
He probado de ponerle el: $_POST[]; al declarar la variable, pero el resultado es el mismo.
Seguro que hay algo que estoy haciendo mal, pero yo, no lo veo.
Si necesitais más datos como por ejemplo, donde lo estoy ejecutando, SO, etc. No duden en solicitarlo.

Fichero: inicio.html

Código:
<html>
<head>
<title>Mi sitio</title>
</head>
<body>
<form method="POST" action="login.php">
<label for="Usuario">Usuario: </label>
<input type="text" name="Usuario" id="Usuario"/><br />
<label for="password">Contraseña: </label>
<input type="password" name="password" id="password" /><br />
<input type="submit" value="Entrar" />
</form>
</body>
</html>

Fichero: usuarios.txt
      admin|tkm2000$

Fichero: login.php
Código:
<html>
<head>
<title></title>
</head>
<body>
<?
$user = "Usuario";
    $pass = "password";
     
     
    $f=fopen("usuarios.txt","r");
     
    while(!feof($f)){
     
    $linea = fgets($f);
     
    //Pregunto si la linea empieza por el nombre de usuario dado, y si le sigue la barra vertical
    if(preg_match("/(^".$user."\|)/",$linea))
    //En caso de ser correcto, compruebo que empiece por el nombre de usuario, contenga la barra, y acabe en la contraseña.
    if(preg_match("/(^".$user.")\|(".$pass."$)/",$linea))
    echo "ENTRO";
    else
    echo "FALSO";
    else
    echo "FALSO";
    }
     
    fclose($f);
?>
</body>
</html>

Esto es todo. Espero a ver usado los tags correctos. Es la primera vez que posteo en un foro...


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Login PHP contra un fichero txt
« Respuesta #1 en: 27 Diciembre 2012, 21:51 pm »

Buenas,

Para empezar, las variables $usuario y $password deben estar declaradas de forma que obtengan el contenido que se envia mediante el inicio.html. De la forma de la que las tienes declaradas ahora, obtienen usuario = Usuario y password = password. Vamos que es un string.


Código
  1. <?php
  2.  
  3. $user = $_POST['Usuario'];
  4. $pass = $_POST['password'];
  5.  
  6. $f=fopen("usuarios.txt","r");
  7.  
  8. while(!feof($f)){
  9.  
  10.    $linea = fgets($f);
  11.    echo $linea."\n";
  12.    // Pregunto si la linea empieza por el nombre de usuario dado, y si le sigue la barra vertical
  13.    if(preg_match("/(^".$user."\|)/",$linea)){
  14.        // En caso de ser correcto, compruebo que empiece por el nombre de usuario,
  15.        // contenga la barra, y acabe en la contraseña.
  16.        echo $linea."\n";
  17.        if(preg_match("/(^".$user.")\|(".$pass.")/im", $linea,$result)){
  18.            echo "ENTRO";
  19.        } else { echo "password FALSO"."\n";  }
  20.    } else { echo "usuario FALSO"; }
  21.  
  22. }
  23.  
  24.    fclose($f);
  25. ?>

El codigo PHP te quedaría de la siguiente forma. Lo he modificado un poco porque realmente odio que no se pongan las llaves ( { } ) en los if's. Te puede confundir totalmente.

PD: Ten en cuenta que el usuario seria admin y la contraseña tkm2000.
PD2: Eso es realmente inseguro. Te recomiendo que al menos las guardes en un fichero .php inaccesible por los visitantes.

Saludos


« Última modificación: 28 Diciembre 2012, 17:41 pm por drvy | BSM » En línea

Oshrik

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Login PHP contra un fichero txt
« Respuesta #2 en: 27 Diciembre 2012, 22:21 pm »

Muchas gracias, drvy!!
Voy a ver si funciona.

En línea

Oshrik

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Login PHP contra un fichero txt
« Respuesta #3 en: 28 Diciembre 2012, 18:47 pm »

No funcionó al principio. Total, que fui indagando. Cambie los tags del php <? ?> por <?php ?> y walaaa, funcionó. No se a que es debido, pero imagino que debe ser por la versión de php.
Muchas gracias a todos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas con location en login contra LDAP PHP « 1 2 »
PHP
R41N-W4R3 11 4,854 Último mensaje 21 Diciembre 2007, 09:42 am
por R41N-W4R3
Proteger login contra bruteforcers « 1 2 »
PHP
pedrox@ 15 6,167 Último mensaje 3 Marzo 2009, 02:17 am
por Karman
SOS Racismo, contra una aplicación que publica un fichero de personalidades ...
Noticias
wolfbcn 0 1,668 Último mensaje 14 Septiembre 2011, 01:33 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines