Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/04/2011, 13:23
Tooj
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: instalador de script php en dos pasos

Hola. gracias.

bueno, he estado leyendo varios posts sobre el tema. particularmente uno me gusto. http://www.forosdelweb.com/f18/escri...riable-352416/

y se da el siguiente ejemplo:

este es el archivo a modificar bd.php

Código PHP:
<? 
$dbname
= "name"; 
$dbuser= "user"; 
$dbpass= "pass"; 
?>

y este el script que lo modifica

Código PHP:
<? 
$variable_a_modificar
= "\$dbuser"; //Fijense que escapé el signo $ con la barar invertida \, para que no se tome como el valor de la variable $dbuser 
$nuevo_contenido= "\"usuario\";"; //Lo que queremos que aparesca en la variable 
$file= file ("db.php"); 
for (
$i=0;$i<count($file);$i++){ 
$dato= explode ("=", $file[$i]); 
$nombre_variable= $dato[0]; 
$contenido_variable= $dato[1]; 
if (
$nombre_variable==$variable_a_modificar){ 
$file[$i]= "$nombre_variable= $nuevo_contenido\n"; 
$fl= fopen ("db.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
} 
} 
?>
entonces, he hecho lo siguiente ensayo, pero no lo he podido probar porque el servidor en local me dice error 500, no se a que se deba... ya lo vere después.

así me ha quedado ahora el codigo, aunque la verdad, no se si sea valido cerrar y abrir tantas veces el archivo config, con fopen y fwrite


Las variables a las que me refieron, son las basicas de un blog, nombre, url, y datos de la base de datos.


Código PHP:
<html>
<head>
<title>Instalación de blog.</title>
</head>
<body>

<?php
include ("config.php");
$a = "\$blogname"; //variable a modificar
$aa = "\"sitio\";"; //nuevo valor
$b = "\$blogdescripcion";
$bb = "\"descripcion\";";
$c = "\$siteurl";
$cc = "\"url\";";
$d = "\$path";
$dd = "\"pathurl\";";
$e = "\$dbname";
$ee = "\"bd\";";
$f = "\$dbhost";
$ff = "\"hosting\";";
$g = "\$dbusername";
$gg = "\"usuario\";";
$h = "\$dbpassword";
$hh = "\"pass\";";

$file= file ("config.php"); 
for (
$i=0;$i<count($file);$i++){ 
$dato = explode ("=", $file[$i]);

$blogname = $dato[0]; 
$sitio = $dato[1];
$blogdescripcion = $dato[2];
$descripcion = $dato[3];
$siteurl = $dato[4];
$url = $dato[5];
$path = $dato[6];
$pathurl = $dato[7];
$dbname = $dato[8];
$bd = $dato[9];
$dbhost = $dato[10];
$hosting $dato[11];
$dbusername = $dato[12];
$usuario = $dato[13];
$dbpassword = $dato[14];
$pass = $dato[15];


 
if (
$blogname==$blogname){ 
$file[$i]= "$blogname = $sitio\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
} 

if (
$blogdescripcion==$blogdescripcion){ 
$file[$i]= "$blogdescripcion = $descripcion\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
} 

if (
$siteurl==$siteurl){ 
$file[$i]= "$siteurl = $url\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

if (
$path==$path){ 
$file[$i]= "$path = $pathurl\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

if (
$dbname==$dbname){ 
$file[$i]= "$dbname = $bd\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

if (
$dbhost==$hosting){ 
$file[$i]= "$dbhost = $hosting\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

if (
$dbusername==$dbusername){ 
$file[$i]= "$dbusername = $usuario\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

if (
$dbpassword==$dbpassword){ 
$file[$i]= "$dbpassword = $pass\n"; 
$fl= fopen ("config.php", "w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl, $file[$i]); 
} 
fclose ($fl); 
}

} 

?> //no se si aqui tengo que separar el codigo,  o puede ser uno solo.

<?php

switch($_POST["paso"]){ 
  case 
1:

echo 
'<div id="tabletop">';
echo 
'<form name="post" action="install.php?paso=1" method="POST">';
echo 
"Bienvenidos";
echo 
"Ahora vamos instalar tu blog. Escribe correctamente los datos que se te piden";
echo 
"Nombre de tu sitio"
echo "<br /><br />";
echo 
'<input type="text" name="sitio" size="54" tabindex="1" value="<?php echo $sitio; ?>" id="sitio" />'
echo "<br /><br />";
echo 
"Descripción";
echo 
"<br /><br />";
echo 
'<input type="text" name="descripcion" size="54" tabindex="1" value="<?php echo $descripcion; ?>" id="descripcion" />';
echo 
"<br /><br />";
echo 
"Dirección de dominio";
echo 
"<br /><br />";
echo 
'<input type="text" name="dominio" size="54" tabindex="1" value="<?php echo $dominio; ?>" id="dominio" />';
echo 
"<br /><br />";
echo 
"Base de datos";
echo 
"<br /><br />";
echo 
"Host (Generalmentes <i>localhost</i>, si tienes dudas consulta tu proveedor de hosting</i>";
echo 
"<br /><br />";
echo 
'<input type="text" name="hosting" size="54" tabindex="1" value="<?php echo $hosting; ?>" id="hosting" />';
echo 
"<br /><br />";
echo 
"Nombre de la base de datos";
echo 
"<br /><br />";
echo 
'<input type="text" name="bd" size="54" tabindex="1" value="<?php echo $bd; ?>" id="bd" />';
echo 
"<br /><br />";
echo 
"Nombre de usuario de la base de datos";
echo 
"<br /><br />";
echo 
'<input type="text" name="usuario" size="54" tabindex="1" value="<?php echo $usuario; ?>" id="usuario" />';
echo 
"<br /><br />";
echo 
"Password de la base de datos";
echo 
"<br /><br />";
echo 
'<input type="text" name="pass" size="54" tabindex="1" value="<?php echo $pass; ?>" id="pass" />';
echo 
"<br /><br />";

echo 
'<input type="submit" name="submit" value="Guardar"  />'
echo '</form>';
echo 
"</div>;"

exit();
break;

case 
2:

instalacion de tablas 

exit(); 
break; 

?>
bueno, que opinan?

ha quedado mejor, o cómo ven?

también he encontrado un ejemplo como el que propone Sourcegeek, pero aun no lo he probado.

saludos