Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dimitrix en 9 Marzo 2011, 12:45 pm



Título: Modificaciones del valor de una variable en un .php
Publicado por: dimitrix en 9 Marzo 2011, 12:45 pm
La verdad es que tengo una duda de como trabaja SMF y Joomla entre otros y es 'como guardan la información en un 'config.php'.

Por ejemplo, si yo tengo:

Código
  1. <?php
  2.  
  3. $db_host="localhost";
  4. $db_name="SMF_dimitrix";
  5. $db_user="SMF_dimix";
  6. $db_user_pass="qwerty";
  7.  
  8. $conexion = mysql_connect($db_host,$db_user,$db_user_pass);
  9. mysql_connect($db_host,$db_user,$db_user_pass);
  10.  
  11. ?>

Mi pregunta es ¿Cómo desde un panel de control se puede cambiar el texto de la variable en un .php

A ver, se que puedes leer el config.php y si quieres cambiar el nombre de la base de datos puedes hacer un replace de:

Código
  1. $cambio='$db_name="'.$db_name.'"';

Pero quizás exista ya algo creado y no tan cutre.

Un saludo.


Título: Re: Modificaciones del valor de una variable en un .php
Publicado por: Lunfardo en 9 Marzo 2011, 21:12 pm
estaba en la segunda pagina :

http://foro.elhacker.net/php/consultaeditar_archivo_de_texto_en_una_linea_especifica-t318930.0.html


Título: Re: Modificaciones del valor de una variable en un .php
Publicado por: Castg! en 10 Marzo 2011, 02:29 am
Otra vez de nada  ;D Jaja. Pero eso no es lo que necesitas.

Código
  1. function updateConfig($params){
  2. /*Ejemplo: $params= array(
  3. 'db_name'=>'dimitrixCMS',
  4. 'db_user'=>'root',
  5. 'db_user_pass'=>''
  6. )*/
  7. $newConfig='';
  8. include('config.php');
  9. $default=array(
  10. 'db_host'=>$db_host,
  11. 'db_name'=>$db_name,
  12. 'db_user'=>$db_user,
  13. 'db_user_pass'=>$db_user_pass,
  14. );
  15. foreach($default as $varName=>$varValue){
  16. if(in_array($varName,$params)) $default[$varName]=$params[$varName];
  17. $newConfig="\$$varName=".var_export($default[$varName])."\n";
  18. }
  19. return (bool)file_put_contents('config.php',$newConfig);
  20. }

Fijate que ande porque no la probé, la escribi medio rápido asi que puede tener algún error...