Foros del Web » Programando para Internet » PHP »

Sobreescribir variables a nivel servidor

Estas en el tema de Sobreescribir variables a nivel servidor en el foro de PHP en Foros del Web. Hola desarrollado un y hasta ahora va de 10 pero tengo una pequeña duda. Tengo un archivo llamado 'cfgGenerales.php' En dicho archivo yo guardo todas ...
  #1 (permalink)  
Antiguo 30/03/2016, 07:05
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 12 años
Puntos: 0
Pregunta Sobreescribir variables a nivel servidor

Hola desarrollado un y hasta ahora va de 10 pero tengo una pequeña duda.

Tengo un archivo llamado 'cfgGenerales.php'

En dicho archivo yo guardo todas las configuraciones, ahí les dejo un ejemplo:

Código PHP:
$configuracion['ruta'] = 'http://127.0.0.1/';
$configuracion['tema'] = 'dale';
$configuracion['idioma'] = 'ES';
...
... 
Y así tengo como 20 variables que piden cambiar y se tienen que cambiar a nivel servidor, actualmente yo abro el archivo leo las variables, cambio el calor que quiero cambiar y luego reescribo el archivo el detalle es que tengo que reescribir todas las variables
No puedo cambiar solo la variable que quiero cambiar y sin tener que reescribir todo otra vez sino solo esa?

Saludos
  #2 (permalink)  
Antiguo 30/03/2016, 07:12
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años
Puntos: 175
Respuesta: Sobreescribir variables a nivel servidor

Deduzco que estos es una array? $configuracion['ruta'] = 'http://127.0.0.1/'; Aunque es muy raro lo que dices, porque las variables se pueden sobreescribir siempre...

$var1 = 0;
$otra variable = 10;
$var1 = 3;

echo $var1;// cuyo resultado será 3

No probaste con el DEFINE que viene en PHP para generar variables globales?

LEETE ESTO para tener una idea...

O SESIONES... no se...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 30/03/2016, 09:39
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 12 años
Puntos: 0
Respuesta: Sobreescribir variables a nivel servidor

Se sobreescriben pero a nivel usuario yo quiero a nivel servidor osea si un usuario entra mi pagina y yo tengo la variable $var1 = 10; entonces todos los que entran veran la variable 10 pero si yo desde un panel cambio las variables se cambian solo par ami y no a nivel global ya que la variable por defecto es 10

No se si me explico
  #4 (permalink)  
Antiguo 30/03/2016, 09:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Sobreescribir variables a nivel servidor

Cita:
Iniciado por Chiiviito Ver Mensaje
Se sobreescriben pero a nivel usuario yo quiero a nivel servidor osea si un usuario entra mi pagina y yo tengo la variable $var1 = 10; entonces todos los que entran veran la variable 10 pero si yo desde un panel cambio las variables se cambian solo par ami y no a nivel global ya que la variable por defecto es 10

No se si me explico
Eso no es posible, ni usando constantes ni usando variables: porque cada usuario está totalmente desconectado de los demás.

Lo único que puedes compartir entre usuarios podrían ser archivos de texto, un script con variables escritas a mano o base de datos, etc.

La cosa es que debes inicializar cada vez dichas variables porque PHP no permite persistir globalmente nada: peor aún variables así de globales.

Cita:
No puedo cambiar solo la variable que quiero cambiar y sin tener que reescribir todo otra vez sino solo esa?
Eso es ridículo, porque finalmente estás editando un script: ¿por qué habrías que reescribir todo?

Es como cualquier otro script de PHP, no hay misterio ni complejidad.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 30/03/2016, 09:55
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 12 años
Puntos: 0
Respuesta: Sobreescribir variables a nivel servidor

No entienden, mira.

Si yo tengo en el index.php una variable $var1 = 10; y yo armo un formaulario para que el usuario ingrese un valor entonces en mi function yo pongo que:

$var1 = 10;
$var1 = $_OPST['campousuario'];

echo $var1;

En ese caso el valor del $var1 es el numero que haya ingresado el usuario pero cuandoa ctualizo la pagina el valor regresa a ser 10 otra vez.

Entonces lo que yo quiero cambiar es ese valor de 10 y poder ponerle otro valor y que cuando se actualice la apgina este con el valor que yo declare y no el 10, nose si me explico

Yo actualmente utilizo la funcion
Código PHP:
fwrite 
pero tengo que reescribir todas las 20 variables otra vez aunque yo solo quiera cambiar un solo valor.
  #6 (permalink)  
Antiguo 30/03/2016, 10:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Sobreescribir variables a nivel servidor

Pues fácilmente podrías mezclar la configuración inicial con lo que recibes por post usando array_merge(), y para no escribir el código a mano puedes usar var_export().

Código PHP:
Ver original
  1. // configuración inicial
  2. $foo = 13;
  3.  
  4. // serializamos en un array
  5. $old_data = compact('foo');
  6.  
  7. // nueva configuración
  8. $new_data = array('foo' => 20);
  9.  
  10. // configuración mezclada
  11. $mixed_data = array_merge($old_data, $new_data);
  12.  
  13. // exportamos la configuración
  14. $php_code = '<'.'?php return '.var_export($mixed_data, 1).';';
  15.  
  16. // guardamos el script
  17. file_put_contents('config.php', $php_code);

Yo sí he entendido a la perfección lo que intentas hacer, no te molestes.

PDTA: ese script lo debes cargar/usar así:
Código PHP:
Ver original
  1. $settings = include 'config.php';
  2.  
  3. echo $settings['foo']; // 20
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 01/04/2016, 14:01
Avatar de Chiiviito  
Fecha de Ingreso: octubre-2012
Mensajes: 64
Antigüedad: 12 años
Puntos: 0
Respuesta: Sobreescribir variables a nivel servidor

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues fácilmente podrías mezclar la configuración inicial con lo que recibes por post usando array_merge(), y para no escribir el código a mano puedes usar var_export().

Código PHP:
Ver original
  1. // configuración inicial
  2. $foo = 13;
  3.  
  4. // serializamos en un array
  5. $old_data = compact('foo');
  6.  
  7. // nueva configuración
  8. $new_data = array('foo' => 20);
  9.  
  10. // configuración mezclada
  11. $mixed_data = array_merge($old_data, $new_data);
  12.  
  13. // exportamos la configuración
  14. $php_code = '<'.'?php return '.var_export($mixed_data, 1).';';
  15.  
  16. // guardamos el script
  17. file_put_contents('config.php', $php_code);

Yo sí he entendido a la perfección lo que intentas hacer, no te molestes.

PDTA: ese script lo debes cargar/usar así:
Código PHP:
Ver original
  1. $settings = include 'config.php';
  2.  
  3. echo $settings['foo']; // 20
Gracias por responder.
Peroe stamos en la misma, no conocia esa funcion pero hace lo mismo, osea sobreeescribe si yo tengo mas valores en el array me los pisa todos y solo deja el que modifique :v
  #8 (permalink)  
Antiguo 01/04/2016, 16:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Sobreescribir variables a nivel servidor

Cita:
si yo tengo mas valores en el array me los pisa todos y solo deja el que modifique
Pues te equivocas, en todo caso estás haciendo mal las cosas: mi ejemplo cubre perfectamente el caso que contemplas, pero si no lo sabes aplicar entonces...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 02/04/2016, 14:10
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años, 5 meses
Puntos: 25
Respuesta: Sobreescribir variables a nivel servidor

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues te equivocas, en todo caso estás haciendo mal las cosas: mi ejemplo cubre perfectamente el caso que contemplas, pero si no lo sabes aplicar entonces...
Buen ejemplo, muy sostificado me ha gustado.

Aunque creo que entiendo lo que él quiere, básicamente no quiere volver a sobreescribir todo el fichero sino solo esa variable en concreto.

Pero yo entiendo que siempre que vas a modificar el fichero vas a tener que reescribirlo todo de nuevo, como haces en tu ejemplo. Solo que en tu codigo está mucho más simplificado usando array_merge.

Por otra parte, es la primera vez que veo un ejemplo practico de usar un archivo con "include" y tratarlo como si fuera una función. Lo había leido en el manual y demás pero nunca le había visto mucha utilidad, hasta ahora.
  #10 (permalink)  
Antiguo 02/04/2016, 14:18
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años, 5 meses
Puntos: 25
Respuesta: Sobreescribir variables a nivel servidor

Cita:
Iniciado por Chiiviito Ver Mensaje
Gracias por responder.
Peroe stamos en la misma, no conocia esa funcion pero hace lo mismo, osea sobreeescribe si yo tengo mas valores en el array me los pisa todos y solo deja el que modifique :v
El ejemplo está bien, a ver, el ejemplo que te han pasado lo que hace es tomar los cambios de configuración, y con array_merge te los mezcla. Y ya sobreescribe todo el array entero con la nueva configuración y la vieja. Por lo que remplaza todo el contenido del fichero por uno nuevo que incluiria la configuración que no ha sido tocada y la que ha sido cambiada.

Pero yo te recomendaría que hagas todo esto por base de datos. Este tipo de ficheros de configuración, no suelen hacerse para modificarlos de forma dinamica, sino de forma manual. Es prefireble que los parametros de configuración los metas en una tabla de mysql, y los cargues despues.

Todos los CMS a medida que he creado para mis jefes o clientes, su configuración editable a traves de los mismos los tengo en mysql, y ya configuraciones de Framework lo modifico manual, rara vez lo tengo que modificar.

Etiquetas: nivel, servidor, sobreescribir, variable, variables
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 14:49.