Comunidad de diseño web y desarrollo en internet online

login php con base de datos en bloc de notas

Citar            
MensajeEscrito el 12 May 2011 12:13 am
Quiero saber como podria crear un registro de usuarios usando como base de datos un bloc de notas. Luego que el usuario se registre que pueda loguearse abriendo el archivo de texto.
Gracias.

Por jrzc

1 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 May 2011 01:04 am
Creo que en tu caso sería más adecuado utilizar cookies (lee setcookie() en el manual de php) ya que son más fáciles de manejar y tienen la misma funcionalidad que tendría escribir los archivos.

Si es requisito utilizar un archivo de texto, tendrás que usar fgets poniendo el user y password en líneas diferentes, solo tienes que asignar una variable "usuario" a una linea y "contraseña" a otra y compararlos con las datos que introdujo el usuario.

Para hacer el registro solo podrás contar entonces con fputs

Por Lexas

1207 de clabLevel

7 tutoriales

Genero:Femenino   Desarrollador de GAIA Premio_Secretos

Ilustración y desarrollo de software

firefox
Citar            
MensajeEscrito el 12 May 2011 01:05 am
¿Como puedo hacer para que el usuario y el password sean ingresados por un form de html y se validen en este codigo?
<?php
mn = fopen("registro.txt","r");
$texto = fread($mn, filesize("registro.txt"));
fclose($mn);
$linea = explode("\n",$texto);
foreach($linea as $lin_ea){
$ja = explode(":",$lin_ea);
$usuario = $ja[0];
$password = $ja[1];
echo "usuario: ".$usuario." contrasena: ".$password."<br>";
}
?>
archivo "registro.txt" :
user:pass
user2:pass2
user3:pass3

Por jrzc

1 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 May 2011 01:10 am
Te puedo decir que es mas incomodo inseguro y complicado que usar una base de datos.

Por Aerosilverito

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2011 01:14 am
si lo sé, pero es lo que me piden en donde estudio. ya lo he intentado varias veces pero no logro validarlo.

Por jrzc

1 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 May 2011 01:34 am

jrzc escribió:

¿Como puedo hacer para que el usuario y el password sean ingresados por un form de html y se validen en este codigo?
<?php
mn = fopen("registro.txt","r");
$texto = fread($mn, filesize("registro.txt"));
fclose($mn);
$linea = explode("\n",$texto);
foreach($linea as $lin_ea){
$ja = explode(":",$lin_ea);
$usuario = $ja[0];
$password = $ja[1];
echo "usuario: ".$usuario." contrasena: ".$password."<br>";
}
?>


Tienes que aplicar el método POST al formulario, y que al hacer click a submit (o sea, en la acción) que te lleve a otra página (o la misma, realmente no importa). Evalúas con isset que haya recibido las variables $_POST['user'] y $_POST['pass'], si es así, escribirá esas variables en el archivo.

No había contemplado que manejarías varios usuarios en el mismo archivo, para leerlo supongo que podrías implementar algo como esto:

Código PHP :

<?php /*digamos que hasta este punto ya recibiste user y password con los que quiere ingresar el usuario y los has guardado como $user y $pass*/
     $archivo = fopen("registro.txt","r");
     $userarchivo = fgets ( $archivo );
     while($userarchivo != $user){
          $userarchivo= fgets($archivo);
          if (EOF ($archivo){die ("No se encontró el usuario");})
     /*en el archivo están alternados los user y pass, por lo tanto si encuentra $user, la siguiente línea deberá ser el pass*/
     $passarchivo= fgets($archivo);
     if ($passarchivo == pass){ echo "Bienvenido!";}
     else { echo "contraseña incorrecta";}
}
?>


No está muy elaborado ya que al parecer el trabajo no tiene que estar muy validado, PERO tienes que considerar la probabilidad de que usuarios se repitan o que alguien ponga una contraseña que sea igual a algún usuario, arreglar esto será sumamente complicado, he ahí por lo que siempre se recomienda una base de datos relacional.

Por Lexas

1207 de clabLevel

7 tutoriales

Genero:Femenino   Desarrollador de GAIA Premio_Secretos

Ilustración y desarrollo de software

firefox
Citar            
MensajeEscrito el 12 May 2011 03:40 am
Creo que estoy entendiendote mal jrzc pero quieres hacer un login de fuerza bruta??? Porque por tu codigo no me parece que estes usando tu archivo de registro para validar usuarios???

De todas formas en vez de .txt podrias usar .xml es mas facil aunque cero seguridad.
Saludos

Por nethost_cl

36 de clabLevel



Genero:Masculino  

CHILE

chrome
Citar            
MensajeEscrito el 12 May 2011 06:05 pm
si fuera neceseario yo lo haria con archivos y una carpeta como base de datos

Código :

carpeta/
+++++/juan.txt
+++++/pedro.txt
+++++/pamela.txt

por 2 razones, en linux puedes ponerle permisos de solo lectura a usuario creador, grupo y otros, ahi creas algo mas seguro y otra usas la indexacion de archivos de S.O. como un buscador de usuarios, ya dentro de cada archivo habra los datos que quieras como ,password, email, y esas cosas
---------------
cambiando de punto si lo que quieres es que todo este en un solo archivo hay la funcion de php como es la de file
archivo "registro.txt":

Código :

pedro:123456
juan:mipass
pamela:estapassesmuylargaynolasabras

Código PHP :

<?php
//variables de ejemplo
$usuario = 'pamela';
$password = 'estapassesmuylargaynolasabras';

//comprobamos que el archivo exista
$db_txt = 'registro.txt';
if(is_file($db_txt))
{
   //cargamos el archivo a la variable como tipo array
   $lineas = file($db_txt);
   //lineas contendra un array: 
   //array(0 => 'pedro:123456', 1 => 'juan:mipass',2 =>'pamela:estapassesmuylargaynolasabras');
   //recorremos el array
   foreach($lineas as $linea)
   {
      //dividimos la linea por el separador ':'
      //usamos trim para quitar los espacios como el salto de linea y retorno de carro
      //luego divimos la linea con explode dandole como limite 2 , para haci decir que si 
      //encuentra mas ':' los ignore
      //por ultimo list solo asigna los valores del array a variables comunes
      list($user,$pass) = explode(":",trim($linea),2);
      //comparamos que el user y la pass no sean vacios o que contengan strings
      if(is_string($user)  &&  is_string($pass))
      {
         switch(true)
         {
            case $user == $usuario && $pass == $password:
               echo "Bienvenido!";
            break;
            case $user == $usuario:
               echo "Contraseña Incorrecta";
            break;
            default:
               echo 'El Usuario no existe';
         }
      }
   }
}

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.