<?PHP
/*
Nombre: make_checks.inc
Autor: Julio Tuozzo
Función: Controles de la instalación.
Ver: 2.05
*/
## 1. Verifico que estén disponibles las librerías MySQL y GD
if (!function_exists('mysql_connect'))
{ echo "<p class='danger'>ERROR -
No se encuentran disponibles las funciones de acceso a la base de datos MySQL desde PHP.<br/>
Verifique la instalación de su servidor.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p> ";
exit();
}
if (!function_exists('gd_info'))
{ echo "<p class='danger'>ERROR -
No se encuentra disponible la libería para gráficos GD.<br/>
Verifique la instalación de su servidor.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p> ";
exit();
}
## 2. Verifico que include_path apunte a donde estan phd.inc y lang.inc
$path_phd_inc=$path_lang="";
$a_include = explode( PATH_SEPARATOR, ini_get('include_path') );
$a_long=count($a_include);
for ($I=0; $I<$a_long; $I++)
{$f_path=str_replace("\\","/",$a_include[$I]);
if (substr($f_path,-1)!='/')
{$f_path.='/';
}
if (is_readable($f_path."phd.inc"))
{if (strlen($path_phd_inc)>0)
{echo "<p class='danger'><b>ERROR - EXISTEN POR LO MENOS DOS ARCHIVOS <i>phd.inc</i></p>
<p class='ok'>Uno se encuentra en <i>$path_phd_inc</i> y otro en <i>$f_path</i>.<br />
Asegúrese que solo quede accesible en la variable <i>include_path</i> el archivo
phd.inc que se encuentra inicialmente en <i>/phd_2_05/include/.</i></p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p> ";
exit();
}
else
{$path_phd_inc=$f_path;
}
}
if (is_readable($f_path."lang.inc"))
{ if (strlen($path_lang)>0)
{echo "<p class='danger'><b>ERROR - EXISTEN POR LO MENOS DOS ARCHIVOS <i>lang.inc</i></p>
<p class='ok'>Uno se encuentra en <i>$path_lang</i> y otro en <i>$f_path</i>.<br />
Asegúrese que solo quede accesible en la variable <i>include_path</i> el archivo
lang.inc que se encuentra inicialmente en <i>/phd_2_05/include/.</i></p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p> ";
exit();
}
else
{$path_lang=$f_path;
}
}
}
if (strlen($path_phd_inc)<1)
{ $incl_path=str_replace(PATH_SEPARATOR,PATH_SEPARATOR." ",ini_get('include_path'));
echo "
<p class = 'danger'> Error: no hay acceso al archivo <b>phd.inc</b> </p>
<p>El contenido del parámetro <i>\"include_path\"</i> en <i>php.ini</i> es <b>$incl_path</b>,
dentro de estos subdirectorios no se encuentra el archivo del tipo include <b>phd.inc</b>. </p>
<p>Verifique que exista el archivo phd.inc, inicialmente se encuentra en la carpeta <b>/phd_2_05/include/</b></p>
<p>Incluya en <i>\"include_path\"</i> el camino donde se encuentran los archivos <b>.inc</b> de <b>PHD Help Desk</b> o bien mueva los archivos <b>.inc</b> que se encuentran en la carpeta <b>/phd_2_05/include/</b> a alguno de los subdirectorios especificados en <i>\"include_path\"</i>.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p> ";
exit();
}
if (strlen($path_lang)<1)
{ $incl_path=str_replace(PATH_SEPARATOR,PATH_SEPARATOR." ",ini_get('include_path'));
echo "
<p class = 'danger'> Error: no hay acceso al archivo <b>lang.inc</b> </p>
<p>El contenido del parámetro <i>\"include_path\"</i> en <i>php.ini</i> es <b>$incl_path</b>,
dentro de estos subdirectorios no se encuentra el archivo del tipo include <b>lang.inc</b>. </p>
<p>Verifique que exista el archivo lang.inc, inicialmente se encuentra en la carpeta <b>/phd_2_05/include/</b></p>
<p>Incluya en <i>\"include_path\"</i> el camino donde se encuentran los archivos <b>.inc</b> de <b>PHD Help Desk</b> o bien mueva los archivos <b>.inc</b> que se encuentran en la carpeta <b>/phd_2_05/include/</b> a alguno de los subdirectorios especificados en <i>\"include_path\"</i>.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p>
";
exit();
}
require('lang.inc');
require('phd.inc');
## 3. Verifico que los archivos phd.inc y lang.inc correspondan a la versión 2.05
if ($VPHD!="2.05")
{echo "<p class='danger'> Error: el archivo $path_phd_inc phd.inc no corresponde a la versión 2.05 de <b>PHD Help Desk</b></p>
<p> Puede suceder que tenga otra instalación de <b>PHD Help Desk</b> en su servidor y que la variable <i>include_path</i> del archivo <i>php.ini</i> se encuentre configurada para ese subdirecotrio.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p>";
exit();
}
if ($Vlang!="2.05")
{echo "<p class='danger'> Error: el archivo $path_lang lang.inc no corresponde a la versión 2.05 de <b>PHD Help Desk</b></p>
<p> Puede suceder que tenga otra instalación de <b>PHD Help Desk</b> en su servidor y que la variable <i>include_path</i> del archivo <i>php.ini</i> se encuentre configurada para ese subdirectorio.</p>
<p class = 'danger'> Proceso de configuración de <b>PHD Help Desk</b> suspendido, solucione el problema e intente nuevamente. </p>";
exit();
}
## 4. Verifico que ya se haya especificado el lenguaje.
if (!isset($Contact) or !isset($Process) or !isset($State) or !isset($Type))
{ $c_lang='now';
$c_base_dato=$c_param=$c_create=$c_mail=$c_admin=$c_atrib='danger';
}
else
{$c_lang='ok';
## 5. Verifico los parámetros de acceso a la base de datos.
if(!@mysql_connect($Host,$Usuario,$Contrasena) or !@mysql_select_db($Base))
{$c_base_dato='now';
$c_param=$c_create=$c_mail=$c_admin=$c_atrib='danger';
}
else
{ $c_base_dato='ok';
## 6. Verifico que esten creadas las tablas en la base.
$tablas="(area)(atributo)(ticket)(hist_pass)(operador)(parametros)(sector)(sigo_ticket)(solicitud)(usuario)";
$query="SHOW TABLES";
$result=mysql_query($query) or die ("<p class='danger'> ERROR EN QUERY </p>".mysql_error());
while ($row = mysql_fetch_array($result))
{$tablas=str_replace("(".$row[0].")","",$tablas);
}
if (strlen($tablas)>1)
{$c_create='now';
$c_param=$c_mail=$c_admin=$c_atrib='danger';
}
else
{$c_create='ok';
## 7. Verifico que este configurado para enviar correo electrónico
if ($Mail_host == 'your.mail.server.com' or $Mail_usuario == 'hide@address.com')
{$c_mail='now';
$c_param=$c_admin=$c_atrib='danger';
}
else
{$c_mail='ok';
## 8. Verifico que haya algún operador con permiso de administrador.
$query="SELECT * FROM operador WHERE nivel>=20";
$result=mysql_query($query) or die ("<p class='danger'> ERROR EN QUERY </p>".mysql_error());
$q_admin=mysql_num_rows($result);
if ($q_admin<1)
{$c_admin='now';
$c_param=$c_atrib='danger';
}
else
{$c_admin='ok';
## 9. Verifico que se hayan ingresado atributos.
if ($PHD_Ins=="NO")
{$c_atrib='now';
$c_param='danger';
}
else
{$c_atrib='ok';
## 10. Verifico que se hayan configurado los parámetros generales.
$query="SELECT * FROM parametros";
$result=mysql_query($query) or die ("<p class='danger'> ERROR EN QUERY </p>".mysql_error());
$q_param=mysql_num_rows($result);
if($q_param<1)
{$c_param='now';
}
else
{$c_param='ok';
}
}
}
}
}
}
}
?>