Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear archivo de configuracion

Estas en el tema de Crear archivo de configuracion en el foro de PHP en Foros del Web. Saludos señores, Estoy haciendo un panel de administracion y a la vez iniciándome en php. hiba todo bien hasta que se me metio en la ...
  #1 (permalink)  
Antiguo 05/08/2013, 10:36
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Crear archivo de configuracion

Saludos señores,
Estoy haciendo un panel de administracion y a la vez iniciándome en php. hiba todo bien hasta que se me metio en la cabeza tener un archivo de configuracion en el cual estuvieran variables como "$urlweb = 'http://www.ejemplo.com'", etc... para de ay poderlas llamar a cualquier parte del panel entonces como esos datos hiban a estar escritos en un block de notas para que el usuario no este modificando la informacion desde el propio block de notas pues tambien se me metio en la cabeza el hecho de poder poner un formulario en el cual se guarde la informacion modificada en el block de notas... pero no tengo idea como hacerlo alguien me ayuda????
  #2 (permalink)  
Antiguo 05/08/2013, 11:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Crear archivo de configuracion

Es algo sencillo, ve las funciones que PHP te da para eso, como file_put_contents y file_get_contents, también, fopen/fwrite/fclose, todas ellas te sirven para manejar archivos.

Saludos.
  #3 (permalink)  
Antiguo 05/08/2013, 11:38
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Estoy buscando algun manual de eso... pero no logro entender :/
  #4 (permalink)  
Antiguo 05/08/2013, 11:57
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Yo uso una clase PHP del estilo:

Código PHP:
class Conf{
    public static 
$variable1 'Pepito';
    public static 
$variable2 'Pepito2';
    public static 
$variable1 'Pepito3';

Y accedo a ellas así:
Código PHP:
echo 'Bienvenido '.Conf::$variable1
  #5 (permalink)  
Antiguo 05/08/2013, 12:09
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

ammmm y como editas el contenido atravez de un formulario?
  #6 (permalink)  
Antiguo 05/08/2013, 12:22
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Aah no había entendido lo de que quieres editar desde un formulario.

Tienes al menos dos posibilidades:
Lo que te ha dicho GatorV,
O en tu caso yo uso básicamente una tabla "Ajustes" o "Configuracion" en la base de datos. Cargo unos ajustes iniciales al instalar mi página, pero éstos pueden cambiar, y la página se comporta de distintas formas en función de esos valores.
  #7 (permalink)  
Antiguo 05/08/2013, 12:25
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

ammm... Joomla usa clases en su archivo configuration.php donde ay informacion como nombre de la pagina, metas-tags,etc....

Y la mayoria de informacion se edita en el panel atravez de un formulario, como lo hago :/
  #8 (permalink)  
Antiguo 05/08/2013, 12:30
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Puedes poner un ejemplo de dato que esté en una clase y que puedas modificar desde un formulario?

No es imposible, pero hacer una clase para luego modificar el archivo es complicarse. Para eso haces un archivo del tipo:
Código conf:
Ver original
  1. variable1 pepito
  2. variable2 pepito2
  3. varialbe3 pepito3
Nótese el espacio
  #9 (permalink)  
Antiguo 05/08/2013, 12:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Crear archivo de configuracion

En el manual tienes toda la información que necesites, puedes escribir fácilmente, un ejemplo:
Código PHP:
Ver original
  1. $contenido = "foo=bar";
  2. file_put_contents('config.txt', $contenido);

Saludos.
  #10 (permalink)  
Antiguo 05/08/2013, 13:14
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Si lo hago a traves de clases como lo hace joomla y lo explica onedy, segun yo si se podria modificar el contenido que esta dentro del archivo configuration.php....

Y la opcion que me da GatorV no logro comprenderla a 100%, trato pero no puedo, no sabria como programar el formulario....
  #11 (permalink)  
Antiguo 05/08/2013, 13:33
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Creo que ya sé a que te refieres con el formulario de Joomla. Ese formulario lo que hace es generarte un archivo de configuración del tipo
Código PHP:
class JConfig {
/* Site Settings */
var $offline '0';
var 
$offline_message 'El sitio está desactivado por tareas de mantenimiento <br> Por favor, vuelva más tarde.';
var 
$sitename 'Oxxxx x x xxxxxxxxxs';
var 
$editor 'tinymce';
//...

Pero este archivo no lo vuelve a modificar que yo sepa.

Lo más parecido a lo que tu quieres es lo que te esta diciendo GatorV.
Se me ha ocurrido una forma simple de trabajar con los datos:
Generas una serie de datos. Si es un número fijo de datos pues pones dato1=40&dato2=asdf. En cambio si tienes un número variable de datos, puedes usar la funcion http_build_query.
Guardas el string en un archivo con la función que te ha puesto GatorV.
Para recuperar los datos, tras leer el archivo, usas parse_str($string, $array_donde_guardar_datos) .

Por ejemplo...
  #12 (permalink)  
Antiguo 05/08/2013, 13:41
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Onedy, el contenido de la variable $offline_message si se modifica en el panel de administracion de joomla y se modifica atraves de un formulario al igual que $sitename...

Lo que quiero hacer es un archivo de configuracion en el cual se guarden datos importantes del servidor, como titulo de la pagina, email del webmaster, meta's, etc y que eso se pueda visualizar en el panel de administracion y a la ves se pueda modificar... asi como joomla otros mas cms lo tienen T.T... estube viendo unos ejemplos sobre lo que me dice GatorV pero todos esos se guardan en un archivo .txt y son cada vez que se envie informacion...
  #13 (permalink)  
Antiguo 05/08/2013, 13:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Crear archivo de configuracion

El primer parámetro es el nombre del archivo, bien puedes usar cualquier archivo que quieras, no solo un .txt, puede ser cualquier archivo, y si quieres escribir un archivo en PHP puedes hacerlo, solo asegúrate de respetar la sintaxis:

Código PHP:
Ver original
  1. <?php
  2.  
  3. file_put_contents('foo.php', '<?php $hello="world"; ?>');

Saludos.
  #14 (permalink)  
Antiguo 05/08/2013, 13:52
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Haber....
Supongamos que este sea mi formulario...

Código HTML:
Ver original
  1.  <label>Nombre de compañia</label>
  2.   <input type="text" />
  3.   <span class="help-block">Escribe el nombre de la compañia propietaria de tus servidores <strong>"Ej: TestGamers Entertainment".</strong></span>
  4. </form>

yo deberia poner esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. file_put_contents('foo.php', '<?php $hello="world"; ?>');

debajo de mi formulario????
  #15 (permalink)  
Antiguo 05/08/2013, 13:57
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Lo que hace Joomla es generar la clase PHP otra vez con la nueva configuración y guardarla. Por eso te pide que "actives la capa FTP" o que le des permisos de escritura al archivo.

La ventaja de generar variables php es que no tienes que decodificar después.

Si quieres generar un archivo php, el ultimo ejemplo de GatorV te viene muy bien :)
  #16 (permalink)  
Antiguo 05/08/2013, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Crear archivo de configuracion

Pues eso es lo básico, la idea es que lo aprendas, lo estudies y luego lo apliques a tu caso de uso, si no sabes como leer variables en PHP, acá hay un ejemplo:

http://www.php.net/variables.external

Saludos.
  #17 (permalink)  
Antiguo 05/08/2013, 14:03
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Crear archivo de configuracion

Noo, ese es el ejemplo.

Código HTML:
Ver original
  1. <form [B]action="accion.php" method="get"[/B]>
  2.  <label>Nombre de compañia</label>
  3.   <input type="text" [B]name="compania"[/B] />
  4.   <span class="help-block">Escribe el nombre de la compañia propietaria de tus servidores <strong>"Ej: TestGamers Entertainment".</strong></span>
  5. </form>
Te resalto lo que le falta al formulario para poder tratar los datos.
(lo que esta entre [ B] y [ /B] debería haberlo puesto en negrita :P)

En accion.php:
Código PHP:
Ver original
  1. file_put_contents('foo.php', '<?php $nombre_compania="' . $_GET['compania'] . '"; ?>');
  #18 (permalink)  
Antiguo 06/08/2013, 14:17
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Señores disculpen si respondo tarde, pero es que tube que salir a trabajar....
Ahora mismo pondre en practica ambas cosas....
Ojala me salga, "Que la fuerza me acompañe..."
  #19 (permalink)  
Antiguo 06/08/2013, 14:32
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Cita:
Iniciado por Onedy Ver Mensaje
Noo, ese es el ejemplo.

Código HTML:
Ver original
  1. <form [B]action="accion.php" method="get"[/B]>
  2.  <label>Nombre de compañia</label>
  3.   <input type="text" [B]name="compania"[/B] />
  4.   <span class="help-block">Escribe el nombre de la compañia propietaria de tus servidores <strong>"Ej: TestGamers Entertainment".</strong></span>
  5. </form>
Te resalto lo que le falta al formulario para poder tratar los datos.
(lo que esta entre [ B] y [ /B] debería haberlo puesto en negrita :P)

En accion.php:
Código PHP:
Ver original
  1. file_put_contents('foo.php', '<?php $nombre_compania="' . $_GET['compania'] . '"; ?>');
Puse en practica lo de arriba y no me funciona
  #20 (permalink)  
Antiguo 06/08/2013, 14:43
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Ammm... Fue un error mio :/ en vez de poner en action.php puse accion.php...
Que cosas no?
  #21 (permalink)  
Antiguo 06/08/2013, 15:07
 
Fecha de Ingreso: mayo-2013
Ubicación: (!)
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: Crear archivo de configuracion

Ya hice las pruevas correspondientes y me funciono perfecto!!!
Me escribe en el archivo de configuracion, sin embargo cuando pongo otro input de tipo texto dentro del formulario agrego las variables correspondientes y proceso a editar informacion si uno de los input de tipo texto no le pongo nada se guarda con valor "0" es decir...
Tengo 2 input de tipo text uno que dice Compañia y otro que dice Nombre, cuando procedo a cambiar la informacion de Compañia y dejo en blanco Nombre, Nombre se guarda vacio.... asi que decidi hacer esto...

Formulario:
Código PHP:
Ver original
  1. <?php
  2. require('config/config.php');
  3. ?>
  4.  
  5. <form action="action.php" method="get">
  6.     <label>Nombre de compañia</label>
  7.     <input type="text" name="compania" value="<?php echo $nombre_compania ?>"/>
  8.     <br />
  9.     <label>Titulo web</label>
  10.     <input type="text" name="titulo" value="<?php echo $titulo_web ?>"/>
  11.     <button type="submit" name="submit"><i></i>Save changes</button>
  12. </form>

Action.php
Código PHP:
Ver original
  1. <?php
  2.     file_put_contents('config/config.php', '
  3.         <?php
  4.             $nombre_compania="' . $_GET['compania'] . '";
  5.             $titulo_web="' . $_GET['titulo'] . '";
  6.         ?>
  7.     ');
  8. ?>

config/config.php
Código PHP:
Ver original
  1. <?php
  2.             $nombre_compania="Test";
  3.             $titulo_web="Test";
  4.         ?>

Me sirvio mucho su ayuda,
Gracias! :D
Y disculpen si ocacione molestias :$

Etiquetas: formulario, variable
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 21:13.