Foros del Web » Programando para Internet » PHP »

Login desde un archivo plano

Estas en el tema de Login desde un archivo plano en el foro de PHP en Foros del Web. Hola, nos colocaron un ejercicio sobre, validar un login desde un archivo plano, y cojer todo el renglon para ahcer la validacion, por ejemplo: user1 ...
  #1 (permalink)  
Antiguo 13/05/2011, 20:38
Avatar de pablortpo  
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Pregunta Login desde un archivo plano

Hola, nos colocaron un ejercicio sobre, validar un login desde un archivo plano, y cojer todo el renglon para ahcer la validacion, por ejemplo:

user1 (tab) pass1
user2 (tab) pass2

que valide que el usuario user1 y su clave correspondiente.

pero estos usuario estan el un arvhivo plano.
Estoy utilizando un codigo que tiene un problema, no me compara bien los datos, aca les doy el codigo, para que por favor me colaboren gracias.

Código PHP:
<?php
$usuer 
$_POST['txtUsuario'];
$pass $_POST['txtPass'];
$archivo "usuarios.txt";
$id_fichero = @fopen($archivo"r") or die ("<b> el fichero\"$archivo\"no se a podido abrir.</b><p>");
echo 
"<b> El fichero \"$archivo\" existe y esta abierto para lectura.</b><p>";
$Loguin "$usuer  $pass";
rewind($id_fichero);

$Estado feof($id_fichero);

echo 
$Loguin ."<br>";// para saber si esta bien la suma de caracteres
while (!$Estado)
{
    
    
$linea=fgets($id_fichero20);
    echo 
$Loguin."<br>";
    echo 
$linea."<br>";
    if (
$Loguin != $linea)
    {
        echo 
"dato NO Encontrado ";
        
$Estado true;
        echo 
"<head><meta http-equiv='refresh' content='10; url=http://localhost:90/taller_new1/index.php'></head>";

        break;
    }
    else
    {
        echo 
"dato encontrado ";
        echo 
"<head><meta http-equiv='refresh' content='5; url=http://localhost:90/taller_new1/menu.php'></head>";
        break;
    }    
}
echo 
$linea;//para saber que guardo desde el archivo plano

?>
Espero q me puedan colaborar estoy muy , Gracias.
  #2 (permalink)  
Antiguo 13/05/2011, 23:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Login desde un archivo plano

Hay solo una linea en el archivo?, es decir, consta de un solo usuario?, porque no estas dando oportunidad de leer mas alla de la primera linea, la sugerencia seria:

Código PHP:
Ver original
  1. while(false != ($linea = fgets($id_fichero)) { // Mientras se pueda ler una linea
  2.     $linea = trim($linea); // Eliminas posibles espacios y/o saltos de linea que no se necesitan
  3.     if($login == $linea) {
  4.          // Esto quiere decir que si se encontro el usuario
  5.          // Cierras el archivo fclose(...)
  6.          // Creas variables de sesion (bueno, si es parte del ejercicio)
  7.          // Redireccionas
  8.     }
  9. }
  10. // Si llegaste hasta aqui es porque no se encontro el usuario
  11. // Cierras el archivo y redireccionas
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/05/2011, 15:02
Avatar de pablortpo  
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Login desde un archivo plano

:O excelente muchas graciasp or el aporte, ya mis mo lo voy a probar...
muchasimas gracias !
  #4 (permalink)  
Antiguo 14/05/2011, 16:52
Avatar de pablortpo  
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Login desde un archivo plano

Compadre, tengo un problemita con el ciclo while, eso se me queda cargando y cargando...
pregunto, los datos que trage desde el archivo plano son tipo string, y los datos del $_POST tambien lo son, estos datos los sume y les aplico la funcion trim(); para quitarle los espacios, luego lo imprimo y veo que las dos cadenas son completamento iguales para confirmarlo le aplico la funcion echo strcasecmp($Loguin, $linea); para saber si son iguales, pero no lo son...
jaja me voy a matar con este ejercicio.
  #5 (permalink)  
Antiguo 15/05/2011, 03:32
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: Login desde un archivo plano

Login.html
Código HTML:
Ver original
  1. <head><title>Prueba - Fekaa</title></head>
  2. <form name="login" method="post" action="ejemplo1.php">
  3. <table style="border-style:double;border-color:orange;width:200px;background-color:gray;">
  4. <tr>
  5. <td>Usuario: </td>
  6. <td><input type='text' name='txtUsuario' /></td>
  7. </tr>
  8. <tr>
  9. <td>Password:</td>
  10. <td><input type='text' name='txtPass' /></td>
  11. </tr>
  12. <tr><td></td>
  13. <td><input type="submit" value="Entrar" /></td>
  14. </tr>
  15. </form>
  16. </body>
  17. </html>

ejemplo1.php
Código PHP:
Ver original
  1. <?php
  2. $user = $_POST['txtUsuario']; //Recogemos datos
  3. $pass = $_POST['txtPass'];
  4. $correcto = false;
  5. $archivo = "users.txt";
  6. $hand = fopen($archivo,"r") or die("Un error se ha producido."); // Abrimos el archivo modo lectura
  7. $contents = fread($hand,filesize($archivo));
  8. $lineas = explode("\n",$contents); //Separo en lineas
  9. for($i=0;$i<count($lineas);$i++){
  10.     $posTab = strpos($lineas[$i],"\t"); //Posicion del tabulador
  11.     $users[] = substr($lineas[$i],0,$posTab); // Separo el usuario del password
  12.     $passwords[] = substr($lineas[$i],$posTab,strlen($lineas[$i]));
  13.     if(($user == $users[$i]) && ($pass == trim($passwords[$i]))){
  14.         $correcto = true; //El usuario ha ingresado correctamente
  15.     }
  16. }
  17. if($correcto==true){
  18.     echo "El usuario ha ingresado correctamente!";
  19. }else{
  20.     echo "Nombre de usuario y/o password inv&aacute;lidos";
  21. }
  22. ?>

Esto sirve para muchos usuarios. Los usuarios de las passwords se separan mediantes tabuladores. Ya sólo queda adaptarlo a tus necesidades.

Saludos!
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #6 (permalink)  
Antiguo 15/05/2011, 21:24
Avatar de pablortpo  
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: Login desde un archivo plano

huy! hermano!! en hora buena!! Excelente! muchisimas gracias.... esta muy buen documento!!
  #7 (permalink)  
Antiguo 16/05/2011, 12:02
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: Login desde un archivo plano

De nada amigo, para eso estamos. Cualquier cosa no dudes en consultar siempre detalladamente para obtener respuestas rápidas. Saludos !
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.

Etiquetas: login, plano
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 20:22.