El formulario ( Templates/installationForm.tpl.php ) contiene el siguiente código:
Código:
1 <html>
2
3 <body>
4
5 <!--:Errors-->
6
7 <form action='Install.php' method='POST' name='FormularioInstalacion'>
8
9 Data base Name:
10 <input type="text" name="DBName"/><br/>
11 Host IP:
12 <input type="text" name="DBHost"/><br/>
13 Data base user name:
14 <input type="text" name="DBUserName"/></br>
15 Data base user pass:
16 <input type="text" name="DBUserPass"/></br>
17
18 <input type="hidden" value="true" name="submitVerifier"/>
19
20 <input type="submit"/>
21 </form>
22
23 </body>
El script que procesa el formulario es el siguiente:
Código PHP:
1 <?php
2 /**
3 * Inicializa el chat.
4 *
5 * Desplega un formulario donde se ingresan los distintos parámetros de
6 * configuración correspondientes al servidor y crea el archivo
7 * datosSrv.inc.php con dichos. Ej usuario y contraseña
8 * de la base de datos, nombre de la base de datos a usar y host.
9 */
10
11 /**
12 * Importa la clase Chat.
13 */
14 include_once( 'Chat/Chat.php' );
15
16 /**
17 * Ubicación del formulario de instalación
18 * @var string
19 */
20 $archivoFormInst='Templates/installationForm.tpl.php';
21
22 /**
23 * Ubicacion del template con los errores producidos
24 * @var string
25 */
26 $fileErrorTemplate='Templates/installationFormErrors.tpl.php';
27
28
29 /**
30 * Array que contiene los datos incorrectos.
31 * @var array
32 */
33 $datosIncorrectos=Array();
34
35
36 /* Verifica si la actual llamada al script es enviada desde el formulario
37 * para procesar los datos ingresados o fue realizada para imprimir dicho
38 * formulario, en este caso, imprime el formulario y termina la ejecución.
39 */
40 if( !array_key_exists( 'submitVerifier' , $_POST ) ){
41 echo file_get_contents( $archivoFormInst );
42 exit;
43 }
44
45 /* Verifica el nombre de base de datos ingresado, en caso de ser incorrecto
46 * escribe un nuevo campo en el array datos incorrectos con el campo
47 * "Nombre de base de datos".
48 */
49 if (!array_key_exists( 'DBName', $_POST ) ||
50 empty( $_POST ['DBName'] ) ){
51 $datosIncorrectos[]= 'No se ingreso un nombre de la base de datos';
52 }
53
54
55 /* Verifica el nombre de usuario de la base de datos ingresado, en caso de
56 * ser incorrecto escribe un nuevo campo en el array datos incorrectos con
57 * el campo "No se ingreso un nombre de usuario de la base de datos".
58 */
59 if (!array_key_exists( 'DBUserName', $_POST ) ||
60 empty( $_POST ['DBUserName'] ) ){
61 $datosIncorrectos[]= "No se ingreso un nombre de usuario de la base de datos";
62 }
63
64
65 /* Verifica el formato del host ingresado, en caso de ser incorrecto
66 * escribe un nuevo campo en el array datos incorrectos con el campo
67 * "La IP de host es incorrecta".
68 */
69 if (!array_key_exists( 'DBHost', $_POST ) ||
70 empty( $_POST ['DBHost'] ) ||
71 !preg_match( "/^((2[0-5][0-9])|(1?[0-9]?[0-9]))(\.((2[0-5][0-9])|(1?[0-9]?[0-9]))){3}$/", $_POST[ 'DBHost' ] ) ){
72 $datosIncorrectos[]= "La IP de host es incorrecta.";
73 }
74
75
76 /* Si no se encontraron errores ( count( $datosIncorrectos ) = 0 )
77 * y se verifica la conexion a la base de datos se inicializa el creando
78 * la correspondiente tabla en la base de datos y definiendo el archivo
79 * con los datos de conexión.
80 */
81 if( count( $datosIncorrectos ) == 0 ){
82
83 $dsn= "mysql:dbname={$_POST[ 'DBName' ]};host={$_POST[ 'DBHost' ]}";
84 try{
85 $pdoConnection= @new PDO( $dsn, $_POST[ 'DBUserName' ] ,
86 $_POST[ 'DBUserPass'] );
87
88 /* Si la conexión se realizó correctamente, defino el archivo
89 * datosSrv.inc.php y crea la tabla que utilizará el chat.
90 */
91
92 $newChat= new Chat();
93 //Definicion del archivo de conexión
94
95 header( 'location: Templates/operationComplete.tpl.php' );
96
97 }catch( PDOException $e ){
98 $datosIncorrectos[]="No es posible la conexion con la base de datos, alguno de los datos ingresados son incorrectos.";
99 }catch( Exception $e ){
100 echo $e;
101 }
102 }
103
104
105 /* Si se encontraron errores imprime en pantalla el formulario de
106 * instalación con la información de cada errory elimina los campos
107 * reservado a errores no asignados del formulario.
108 */
109 if( count( $datosIncorrectos ) != 0 ){
110 $formulario= file_get_contents( $archivoFormInst );
111 $errorTpl= file_get_contents( $fileErrorTemplate );
112 foreach( $datosIncorrectos as $valor ){
113 $formulario = str_replace( "<!--:Errors-->",
114 "<!--:Errors-->".str_replace( "<!--:ErrorMsg-->", $valor, $errorTpl )
115 , $formulario );
116 }
117
118 echo $formulario;
119 }
El archivo se definiría en la linea 93. La idea sería un archivo con un formato similar a:
Código:
usuarioAdministradorDeLaBD
contraseñaDelUsuarioAdministrador
nombreDeLaBaseDeDatos
host
Esos son los datos necesarios para que el sistema se pueda conectar a la base de datos y funcione correctamente.