Foros del Web » Programando para Internet » PHP »

Leer valores de archivo de configuración

Estas en el tema de Leer valores de archivo de configuración en el foro de PHP en Foros del Web. Estoy haciendo una aplicación web y quería que el usuario pudiese modificar algunos parámetros de la aplicación sin tener que editar el código fuente de ...
  #1 (permalink)  
Antiguo 09/02/2006, 16:02
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Leer valores de archivo de configuración

Estoy haciendo una aplicación web y quería que el usuario pudiese modificar algunos parámetros de la aplicación sin tener que editar el código fuente de la misma.

En un principio pensé en meter esos valores en un archivo de texto e incluirlo en la cabecera de la web, pero me parece poco 'profesional', hay alguna manera de leer estos valores de una manera más profesional?

Me refiero a acceder directamente al valor de una variable sin hacer chapuzas de incluír el archivo o leerlo de principio a fin...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 09/02/2006, 16:08
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

mmm podrias usar ya sea sesiones o cookies....
http://mx.php.net/manual/es/ref.session.php
http://mx.php.net/manual/es/function.setcookie.php
  #3 (permalink)  
Antiguo 09/02/2006, 16:12
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Podrías tomar los valores de una base de datos, al fin que sólo los vas a leer una sola vez (cada vez que el usuario se conecte) y guardar esos datos en variables de sesión.

Coo variables de sesión siempre los tendrás disponibles sin tener que recurrir a lecturas recurrentes a tu BD.

¿Te funcionaría eso?
  #4 (permalink)  
Antiguo 10/02/2006, 09:41
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
No me expliqué correctamente...

Lo que quiero es una manera sencilla para que el usuario del software pueda configurar algunos parámetros manualmente, entre esos parámetros estará el nombre de usuario para acceder a una base de datos y contraseña y así.

Lo que quiero es que el usuario escriba esos valores en un archivo y luego leerlos desde mi aplicación.

La funcionalidad que quiero implementar en mi software es la mismo que el archivo app.config de Visual .NET

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #5 (permalink)  
Antiguo 10/02/2006, 09:55
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Si lo que quieres es usar archivos te recomiendo que le eches un ojo a esta función fopen()
  #6 (permalink)  
Antiguo 12/02/2006, 10:32
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Nooo... no es eso lo que quiero.

Lo que necesito es algo así:

Un archivo en el que se guardan unas variables y sus valores:

archivo_configuracion.txt

$uname="pepe";
$SGBD="mysql";

$color="negro";
$ancho="300";
$alto="400";

Y que el usuario pueda abrir el archivo con su navegador y poner en vez de pepe su nombre y en vez de negro su color favorito.

Luego desde mi aplicación tengo que leer esos valores y aplicarlos para que en la web aparezca 'Bienvenido Pepe' y con un color de fondo negro...

Lo que quiero es saber (y cómo) si hay alguna manera para acceder al valor de la varible directamente ya que hacer un include("archivo_configuracion.txt") me parece algo cutre.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #7 (permalink)  
Antiguo 12/02/2006, 11:46
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Déjame ver si te entendí, vamos a suponer que tú tienes 1,000 usuarios.

¿Entonces tendrás 1,000 pequeños archivos de texto en tu servidor, con la configuración de cada uno de tus usuarios?

Bueno, si eso es lo que tienes en mente, seguramente te serviría lo siguiente:

Código PHP:
//
//(script no probado, salió al vuelo, pero es la idea)

//como quizá tengas mil usuarios,
//éste será el usuario 0983
$usuario_num="0983";

//accedes al archivo de texto correspondiente
//asegurate de que exista.
$config_path="configuraciones/conf-" $usuario_num;
if(!
file_exists($config_path)){echo "Config. no existe.";exit;}

//cargas todas las variables en un array
$config=file($config,"r");

//separas el nombre de la variable de su valor
foreach($config as $linea)
  {
  
$separados=explode("=",$linea);
  
$a[$separados[0]]=$separados[1];
  } 
Ahora ya tienes un array con los parámetros de tu usuario. Si ejecutas:

echo a["color"]; //imprime: negro
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #8 (permalink)  
Antiguo 12/02/2006, 12:47
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
A ver, si no entendí mal, lo que querés hacer es permitirle a un administrador configurar ciertos parámetros de la aplicación, más que permitirle a un usuario personalizar algunas cosas.

En ese caso, lo más práctico me parece que es hacer un archivo de configuración y pasarle las instrucciones al admin (por ej. en un leeme.txt que no sea parte de la instalación, donde se explique como configurarla y se dé ejemplos, etc).

Si lo querés hacer más "amigable", podrías usar un formulario. En ese formulario se ingresarían los datos a configurar (incluso puede tener la ayuda ahí mismo). Cuando se envíe, ese formulario lo va a recibir un script que va a ser el encargado de generar un archivo de configuración, en algún lugar al que pueda acceder la aplicación a través de include/require (incluso podrías usar include/require_once y guardar los valores como datos de sesión, para no tener que estar leyendo todo el tiempo ese archivo).

Ahora bien, el problema que se plantea es que ese formulario va a tener que ser accesible por una url. Por lo cual, cualquiera podría entrar y cambiar las configuraciones... Entonces, lo que podrías hacer es un login para acceder a ese formulario. Los datos de ese login (ej. nombre de usuario y contraseña) no pueden estar guardados en una BBDD, porque todavía no estaría configurada. O sea que tendrían que estar en un archivo. Pero si ese archivo lo ponés fuera de public_html, creo que no habría mayores problemas.

O sea, al admin, cuando le entregás la aplicación, le das un nombre de usuario y contraseña para configurar la aplicación. Esos datos los determinás vos (al menos, para la primera instalación; eventualmente podrías hacerlos modificables; si vas a distribuir más de una copia de la aplicación, cada combinación nombre/contraseña debería ser única). El admin ingresa esos datos, los corroborás y si pasa la validación, llega al formulario para configurar la aplicación. Ahí la configura de acuerdo a la BBDD que tenga y los parámetros de conexión que necesite, etc. Y ya estaría. Si en algún momento cambia algo en el server (o por alguna otra razón) y tiene que modificar algún parámetro, solo tendría que volver a ese formulario, loguearse y hacer los cambios necesarios.

No sé si es exactamente lo que buscás, pero se me ocurre que el sistema podría funcionar así.

Suerte
Califa
  #9 (permalink)  
Antiguo 12/02/2006, 14:25
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Gracias a uamistad y a Califa010 por ponerme un ejemplo y entenderme respectivamente...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
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 16:57.