Files
luos/gulliver/bin/tasks/templates/dbInfo.php.tpl

139 lines
4.0 KiB
Smarty
Raw Normal View History

2010-12-02 23:34:41 +00:00
<?php
/**
* dbInfo.php
2017-12-04 13:25:35 +00:00
*
2010-12-02 23:34:41 +00:00
* {projectName}
2017-12-04 13:25:35 +00:00
*
2010-12-02 23:34:41 +00:00
*/
function lookup($target)
{
2017-12-04 13:25:35 +00:00
global $ntarget;
$msg = $target . ' => ';
//if( eregi('[a-zA-Z]', $target) )
if (preg_match('[a-zA-Z]', $target)) { //Made compatible to PHP 5.3
2010-12-02 23:34:41 +00:00
$ntarget = gethostbyname($target);
2017-12-04 13:25:35 +00:00
} else {
$ntarget = gethostbyaddr($target);
}
$msg .= $ntarget;
return($msg);
2010-12-02 23:34:41 +00:00
}
2017-12-04 13:25:35 +00:00
function getDbServicesAvailables()
{
$servicesAvailables = array();
$dbServices = array(
'mysql' => array(
'id' => 'mysql',
'command' => 'mysqli_connect',
2010-12-02 23:34:41 +00:00
'name' => 'MySql'
),
2017-12-04 13:25:35 +00:00
'pgsql' => array(
2010-12-02 23:34:41 +00:00
'id' => 'pgsql',
'command' => 'pg_connect',
'name' => 'PostgreSQL'
),
2017-12-04 13:25:35 +00:00
'mssql' => array(
2010-12-02 23:34:41 +00:00
'id' => 'mssql',
'command' => 'mssql_connect',
'name' => 'Microsoft SQL Server'),
2017-12-04 13:25:35 +00:00
'oracle'=> array(
2010-12-02 23:34:41 +00:00
'id' => 'oracle',
'command' => 'oci_connect',
'name' => 'Oracle'
),
2017-12-04 13:25:35 +00:00
'informix'=> array(
2010-12-02 23:34:41 +00:00
'id' => 'informix',
'command' => 'ifx_connect',
'name' => 'Informix'
),
2017-12-04 13:25:35 +00:00
'sqlite' => array(
2010-12-02 23:34:41 +00:00
'id' => 'sqlite',
'command' => 'sqlite_open',
'name' => 'SQLite'
)
2017-12-04 13:25:35 +00:00
);
foreach ($dbServices as $service) {
if (@function_exists($service['command'])) {
$servicesAvailables[] = $service;
}
}
return $servicesAvailables;
}
2010-12-02 23:34:41 +00:00
2017-12-04 13:25:35 +00:00
function getDbServerVersion($driver)
{
try {
switch ($driver) {
2010-12-02 23:34:41 +00:00
case 'mysql':
2018-02-01 13:06:32 +00:00
$results = \Illuminate\Support\Facades\DB::select(DB::raw("select version()"));
preg_match('@[0-9]+\.[0-9]+\.[0-9]+@', $results[0]->{'version()'}, $version);
$v = $version[0];
2010-12-02 23:34:41 +00:00
break;
}
2017-12-04 13:25:35 +00:00
return (isset($v))?$v:'none';
} catch (Exception $e) {
return ($e->getMessage());
}
2010-12-02 23:34:41 +00:00
}
2017-12-04 13:25:35 +00:00
if (file_exists(PATH_METHODS . 'login/version-{projectName}.php')) {
include('version-{projectName}.php');
} else {
define('PRG_VERSION', 'Development Version');
2010-12-02 23:34:41 +00:00
}
if (getenv('HTTP_CLIENT_IP')) {
2017-12-04 13:25:35 +00:00
$ip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
2010-12-02 23:34:41 +00:00
} else {
2017-12-04 13:25:35 +00:00
$ip = getenv('REMOTE_ADDR');
2010-12-02 23:34:41 +00:00
}
$redhat = '';
2017-12-04 13:25:35 +00:00
if (file_exists('/etc/redhat-release')) {
$fnewsize = filesize('/etc/redhat-release');
$fp = fopen('/etc/redhat-release', 'r');
$redhat = fread($fp, $fnewsize);
fclose($fp);
2010-12-02 23:34:41 +00:00
}
$redhat .= " (" . PHP_OS . ")";
//$dbNetView = new NET(DB_HOST);
//$dbNetView->loginDbServer(DB_USER, DB_PASS);
$availdb = '';
2017-12-04 13:25:35 +00:00
foreach (getDbServicesAvailables() as $key => $val) {
if ($availdb != '') {
$availdb .= ', ';
}
$availdb .= $val['name'];
2010-12-02 23:34:41 +00:00
}
$Fields['SYSTEM'] = $redhat;
$Fields['DATABASE'] = 'MySql (Version ' . getDbServerVersion('mysql') .')';
$Fields['DATABASE_SERVER'] = DB_HOST;
$Fields['DATABASE_NAME'] = DB_NAME;
$Fields['PHP'] = phpversion();
$Fields['FLUID'] = PRG_VERSION;
2017-12-04 13:25:35 +00:00
$Fields['IP'] = lookup($ip);
2010-12-02 23:34:41 +00:00
$Fields['ENVIRONMENT'] = SYS_SYS;
$Fields['SERVER_SOFTWARE'] = getenv('SERVER_SOFTWARE');
$Fields['SERVER_NAME'] = getenv('SERVER_NAME');
$Fields['AVAILABLE_DB'] = $availdb;
$Fields['SERVER_PROTOCOL'] = getenv('SERVER_PROTOCOL');
$Fields['SERVER_PORT'] = getenv('SERVER_PORT');
$Fields['REMOTE_HOST'] = getenv('REMOTE_HOST');
$Fields['SERVER_ADDR'] = getenv('SERVER_ADDR');
$Fields['HTTP_USER_AGENT'] = getenv('HTTP_USER_AGENT');
$G_PUBLISH = new Publisher;
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/dbInfo', '', $Fields);
G::RenderPage('publish', 'raw');