Foros del Web » Programando para Internet » PHP »

instalador de script php en dos pasos

Estas en el tema de instalador de script php en dos pasos en el foro de PHP en Foros del Web. hola. quiero hacer un instalador para un script de blog que tengo. ya he leido algunos post al respecto... el instalador está en dos partes, ...
  #1 (permalink)  
Antiguo 16/04/2011, 20:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 1
instalador de script php en dos pasos

hola. quiero hacer un instalador para un script de blog que tengo. ya he leido algunos post al respecto...

el instalador está en dos partes, en la primera se edita el archivo de configuracion y en la segunda se crean las tablas de la base de datos. la segunda parte funciona, pero lo primera todavía esta incompleta porque no se como hacer que abra el archivo y lo edite a partir del formulario, aunque creo que esto es algo básico.

pongo a continuacion la primera parte, que es la que falla.

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

<?php
require ("config.php");
global 
$sitio$descripcion$hosting$bd$pass$usuario$path


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;

?>

entonces, lo que pido que me orienten es

uno, como abro el archivo config.php para editarlo a partir de un formulario, creo que es algo basico pero no lo he hecho nunca.

dos, si la action del form esta bien, es que no se bien como funciona el switch

tres, al darle guardar, tienen que suceder dos cosas, que se impriman las variables y que se pase al segundo paso. aqui la verdad no se bien como hacerlo

y otra duda, cada caso tiene que tener las etiquetas html, head, y body, o con una sola funciona?

bueno, de antemano gracias.

saludos!
  #2 (permalink)  
Antiguo 16/04/2011, 22:01
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: instalador de script php en dos pasos

Yo lo que hago es tener el config.php en formato, es decir:
Código PHP:
$archivo = "<?phprnrn";
$archivo.= '$dbhost = '.$dbhost."
;rn";
$archivo.= '$dbuser = '.$dbuser."
;rn";
[.....]
De ahi, voy al instalador y le hago include al formato de arriba, luego declado las variables $dbhost, $dbuser y todas esas con los datos introducidos en el formulario
Despues, abro el config.php con fopen y grabo la cadena $archivo en el config.php con ayuda de fwrite... Te invito a que leas estas funciones en PHP para que entiendas, por ahora te di la idea ;)

DOS: Al parecer esta bien el action
TRES: De cuales variables hablas?
CUATRO: HTML, Body y Head son etiquetas muy distintas, te invito a leer en Google que esto es tema de HTML y no PHP..

Saludos y suerte!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 17/04/2011, 13:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 64
Antigüedad: 15 años
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 
$filefile ("db.php"); 
for (
$i=0;$i<count($file);$i++){ 
$datoexplode ("="$file[$i]); 
$nombre_variable$dato[0]; 
$contenido_variable$dato[1]; 
if (
$nombre_variable==$variable_a_modificar){ 
$file[$i]= "$nombre_variable= $nuevo_contenido\n"
$flfopen ("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\";";

$filefile ("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"
$flfopen ("config.php""w"); 
for (
$i=0;$i<count($file);$i++){ 
fwrite ($fl$file[$i]); 

fclose ($fl); 


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

fclose ($fl); 


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

fclose ($fl); 
}

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

fclose ($fl); 
}

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

fclose ($fl); 
}

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

fclose ($fl); 
}

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

fclose ($fl); 
}

if (
$dbpassword==$dbpassword){ 
$file[$i]= "$dbpassword = $pass\n"
$flfopen ("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
  #4 (permalink)  
Antiguo 17/04/2011, 13:47
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: instalador de script php en dos pasos

A mi parecer, el metodo que uso se me hace mucho mas sencillo, pero bueno, depende de cada persona

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: instalador, pasos
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:38.