Foros del Web » Programando para Internet » PHP »

Logearse desde archivo plano

Estas en el tema de Logearse desde archivo plano en el foro de PHP en Foros del Web. Saludos soy nuevo en php y me gustaria saber como verificar los usuarios desde un archivo plano, como por ejemplo txt comparar varios datos del ...
  #1 (permalink)  
Antiguo 08/02/2005, 14:56
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Logearse desde archivo plano

Saludos soy nuevo en php y me gustaria saber como verificar los usuarios desde un archivo plano, como por ejemplo txt comparar varios datos del archivo plano con los datos que vienen de los textbox y logearse. Cualquier luz me ayudaria mucho. Mil Gracias
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #2 (permalink)  
Antiguo 08/02/2005, 15:25
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
En su defecto me gustaría saber como comparar datos en un archivo plano que tiene varias columnas y cómo se donde empieza un dato y termina el otro en funcion a la separacion o a qué otros factores para poderlos modificar.


Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 08/02/2005, 15:46
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 5 meses
Puntos: 1
Mmmm, bueno, es una pregunta tan general y creo que hay tantas formas, supongo que el propio php tendrá funciones de "parseo" de archivos planos, podrías pensar en usar XML y el parserXML de php, pero lo mismo es muy complicado.
Desde luego tendrás que usar expresiones regulares para parsear ese archivo de texto plano y que este, evidentemente, tenga una estructura lógica.
Pásate por el manual de php o busca en el foro por expresiones regulares, parsear, etc...

http://www.forosdelweb.com/search.php?searchid=216132
Manual de PHP(Es)
Buena ayuda sobre Expresiones Regulares
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 08/02/2005 a las 15:51
  #4 (permalink)  
Antiguo 08/02/2005, 16:51
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
El caso es que el codigo que quiero comprobar es similar a este y aun no conozco todas las funciones que maneja php


pedro*password1*file1.cfg*Razon Social1*
luis*password2*file2.cfg*Razon Social2*
manuel*password3*file3.cfg*Razon Social3*

Les agradecería cualquier pista para comenzar porque ya sé que se puede pero me gustaría recorrer el archivo para capturar cada dato. Mil Gracias.

Perdonen pero soy muy novato.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 08/02/2005, 18:02
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 5 meses
Puntos: 1
Te repito que esas funciones están tanto en el manual como en esas búsquedas y páginas, eso son "muchísimas" pistas ya, ahora, si lo que quieres es que te pongan un código para hacer un "copy & paste" dilo claramente, aún así va algo de eso:
Función Explode
Código PHP:
$array_datos explode("*",$texto_plano); 
Eso te dará un array cuyos elementos serán las cadenas divididas por el carácter (*).
Lo mejor sería un bucle que recorriera las líneas del archivo y hacerlo por líneas.
EDITADO:
... joder, te pondré algo más:
Código PHP:
$archivo file($origen_url); // Donde $origen_url será el archivo de texto plano:
$lineas count($archivo);
for(
$i=0$i<$lineas$i++)
{
}
// Para recorrer el archivo. 
Yo creo que con eso ya...
Un saludo.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 08/02/2005 a las 18:05
  #6 (permalink)  
Antiguo 08/02/2005, 18:39
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Eso era lo único que necesitaba saber, cuál era la función y cómo se podía utilizar debido a mi desconocimiento con muchas de las funciones de php.

saludos y Gracias
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #7 (permalink)  
Antiguo 09/02/2005, 12:10
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 5 meses
Puntos: 1
Bueno, esa función es muy muy básica, para un archivo sencillo... vale, para otras cosas quizás necesites expresiones regulares, etc y otras funciones... por eso te aconsejo leerte el manual o cuando tengas una duda pasarte por allí, te garantizo que encuentras siempre lo que buscas, otra cosa es lo complicado que sea ;] .
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org
  #8 (permalink)  
Antiguo 10/02/2005, 09:48
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Gracias por tus respuestas Covids0020 pero leyendo el manual no sé si realmente la funcion count me cuenta el número de líneas porque por lo que leí lo que hace es contar cosas y no sé si de la manera en la que me facilitaste gustosamente el script realmente lo que cuantifica son líneas. Lei que file, otra de las funciones que utilizaste también crea una matriz a partir de un archivo, pero no sé que hace en realidad esta funcion, por lo que veo separa el archivo por líneas pero si pueden explicarme cuál es el funcionamiento práctico mejor.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”

Última edición por Koveart; 10/02/2005 a las 09:57
  #9 (permalink)  
Antiguo 16/02/2005, 21:20
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Covids lei extensamente documentación acerca de explode pero realmente no me ha funcionado porque no me lee el archivo y no sé cómo cargar el archivo a una variable, ya que lo tengo en la misma carpeta lo único que hago es

$archivo=explode("|",archivoplano);

Qué diferencia hay entre explode y split. Porque por lo que veo son muy parecidos.

Gracias por volver a prestarme atención

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”

Última edición por Koveart; 16/02/2005 a las 21:23
  #10 (permalink)  
Antiguo 16/02/2005, 22:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
explode() trabaja con una cadena fija conocida.
split() trabaja con una expresión regular.
Saludos
  #11 (permalink)  
Antiguo 17/02/2005, 07:58
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
EStoy hecho un lio porque no sé como fragmentar el archivo plano que tengo en un arreglo separado por el | me gustaría me ayudaran a solucionar este meollo. Creo que el problema es que explode no me detecata el archivo solamente me coge el string "users", que es como se llama el archivo del cliente, mientras que file si realiza su funcion.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #12 (permalink)  
Antiguo 17/02/2005, 19:57
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Veamos...
La función file() lee el archivo de texto plano y te lo devuelve en un array que tiene cada línea del archivo en una posición.
http://www.php.net/function.file

Luego en cada una de esas posiciones del array tendrás los datos de un usuario separados por el caracter "|". Aquí utilizas la función explode() para poner en una posición de un array cada dato del usuario.

Te voy a poner una función que busca si coinciden el nombre y password y te devuelve todos los datos del usuario en caso de encontrarlo.
Código PHP:
function autentificar($archivo$separador$nombre$posicion_nombre$pass$posicion_pass){
   
// abre el archivo a un array
   
$array_lineas file($archivo);
   
//recorre ese array
   
foreach($array_lineas as $linea){
      
//convierte cada línea en un array de acuerdo al caracter de separación
      
$registro explode("|"$linea);
      if(
$registro[$posicion_nombre]==$nombre && $registro[$posicion_pass]==$pass)
            return 
$registro;
   }
    return 
false;

Para el ejemplo que pusiste simplemente tendrías que llamar a esta función así:
Código PHP:
$usuario autentificar("tuArchivo.txt""|"$nombreIngresado0$passIngresado1); 
Entonces $usuario será un array que contiene todos los datos del usuario. O será "false" si los datos nombre y pass no coinciden.
El cero (0) es porque en cada línea del archivo el usuario aparece en la posición cero.
Y el uno (1) porque el password está en la posición uno.

Ojalá te sirva

Saludos
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 12:30.