Commit 32aae58c authored by Gerd Schachtschneider's avatar Gerd Schachtschneider
Browse files

update mysql/mssql driver, php7

parent 5fc28954
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
; ;
title = "Gefahrenmerkmale" title = "Gefahrenmerkmale"
#debug = 1 ;debug = 1
default_language = de default_language = de
#default_browse_action = edit ;default_browse_action = edit
#default_table = mpi_users# ;default_table = mpi_users#
#usage_mode = edit ;usage_mode = edit
disable_session_ip_check = 1 disable_session_ip_check = 1
disable_g2 = 1 disable_g2 = 1
...@@ -29,11 +29,12 @@ host = "localhost" ...@@ -29,11 +29,12 @@ host = "localhost"
user = "mpg_gfk" user = "mpg_gfk"
password = "Z8XwcFJmxepr4KL9" password = "Z8XwcFJmxepr4KL9"
name = "mpidb_mpg_gfk" name = "mpidb_mpg_gfk"
driver = "mysqli"
[_own] [_own]
dn = "mpi-magdeburg.mpg.de" dn = "mpi-magdeburg.mpg.de"
notify = 30 notify = 30
version = 1.0.03 version = 1.0.04
mailto = "db-responsable@<domain>.mpg.de" mailto = "db-responsable@<domain>.mpg.de"
mailname = "db-admin" mailname = "db-admin"
...@@ -49,11 +50,11 @@ list_reiter = "mehr .." ...@@ -49,11 +50,11 @@ list_reiter = "mehr .."
users_table = "mpi_users" users_table = "mpi_users"
username_column = "username" username_column = "username"
session_timeout = 86400 session_timeout = 86400
# Autorisierung ueber db ; Autorisierung ueber db
auth_type = basic auth_type = basic
password_column = "password" password_column = "password"
# Autorisierung ueber ldap ; Autorisierung ueber ldap
#auth_type = ldap ;auth_type = ldap
ldap_host = "ldap" ldap_host = "ldap"
ldap_port = "389" ldap_port = "389"
ldap_base = "dc=mpi-magdeburg,dc=mpg,dc=de" ldap_base = "dc=mpi-magdeburg,dc=mpg,dc=de"
...@@ -61,7 +62,7 @@ ldap_base = "dc=mpi-magdeburg,dc=mpg,dc=de" ...@@ -61,7 +62,7 @@ ldap_base = "dc=mpi-magdeburg,dc=mpg,dc=de"
[_prefs] [_prefs]
hide_updated = 0 hide_updated = 0
hide_posted_by = 1 hide_posted_by = 1
#horizontal_tables_menu = 1 ;horizontal_tables_menu = 1
[history] [history]
enabled = 1 enabled = 1
......
...@@ -3,51 +3,54 @@ ...@@ -3,51 +3,54 @@
// Cronjob Skript fuer Aktionen ausserhalb der DB // Cronjob Skript fuer Aktionen ausserhalb der DB
// z.B. Mailbenachrichtigung, Loeschen verwaister Ablagen etc. // z.B. Mailbenachrichtigung, Loeschen verwaister Ablagen etc.
// Beispiele folgend // Beispiele folgend
// schachi 2016-02-15 // schachi 2016-06-09
// stelle sicher das dieses Skript in einem Subdir liegt, normalerweise im Ordner cronjobs, sonst gibt es kausale Problem :-( // stelle sicher das dieses Skript in einem Subdir liegt, normalerweise im Ordner cronjobs, sonst gibt es kausale Problem :-(
chdir(__DIR__); chdir(__DIR__);
chdir('../'); chdir('../');
//print_r (realpath(__DIR__).' '.getcwd()."\n");
if (!is_readable('conf.ini') ) die ('Error loading config file from here '.getcwd()."\n"); if (!is_readable('conf.ini') ) die ('Error loading config file from here '.getcwd()."\n");
$conf = array(); $conf = array();
// $conf = array_merge(parse_ini_file('conf.ini', true), $conf);
$conf = parse_ini_file('conf.ini', true); $conf = parse_ini_file('conf.ini', true);
if ( !isset( $conf['_database'] ) ) { //print_r ($conf);
die ('Error loading config file. No database specified.'); if ( !isset( $conf['_database'] ) ) die ('Error loading config file. No database specified.');
}
$dbinfo =& $conf['_database']; $dbinfo =& $conf['_database'];
//print_r ($dbinfo['host'].' '.$dbinfo['user'].' '.$dbinfo['password']);
if ( !is_array( $dbinfo ) || !isset($dbinfo['host']) || !isset( $dbinfo['user'] ) || !isset( $dbinfo['password'] ) || !isset( $dbinfo['name'] ) ) { if ( !is_array( $dbinfo ) || !isset($dbinfo['host']) || !isset( $dbinfo['user'] ) || !isset( $dbinfo['password'] ) || !isset( $dbinfo['name'] ) ) {
die ('Error loading config file. The database information was not entered correctly.'); die ('Error loading config file. The database information was not entered correctly.');
} }
if ( @$dbinfo['persistent'] ) { $db = mysqli_connect($dbinfo['host'], $dbinfo['user'], $dbinfo['password'], $dbinfo['name'] );
$db = mysql_pconnect( $dbinfo['host'], $dbinfo['user'], $dbinfo['password'] ); if ( !$db ) die ('Failed to connect to MySQL database: '.mysqli_connect_error()."\n");
} else {
$db = mysql_connect( $dbinfo['host'], $dbinfo['user'], $dbinfo['password'] );
}
if ( !$db ) {
die ('Error connecting to the database' . mysql_error());
}
$mysqlVersion = mysql_get_server_info($db);
mysql_select_db( $dbinfo['name'] ) or die("Could not select DB: ".mysql_error($db));
$debug = 0; // 1 = ausgabe und keine Mail an User
$mailto = 0; // 0 = keine Mail an Debugger
//$mailto = 'schachi@mpi-magdeburg.mpg.de';
// url
$url = 'http';
if ( isset($conf['_own']['ssl'])) {
if ($conf['_own']['ssl'] == 1) $url = 'https';
}
$path = (basename(realpath('./')));
$host = shell_exec("hostname -f | tr -d '\n'");
$url = $url.'://'.$host.'/'.$path;
if ($debug) print_r($url."\n");
// loesche alle <table>__history, welche nicht erwuenscht sind // loesche alle <table>__history, welche nicht erwuenscht sind
// Xataface hat nur einen globalen Schalter ON/OFF fuer history, aber wer braucht denn alle histories? // Xataface hat nur einen globalen Schalter ON/OFF fuer history, aber wer braucht denn alle histories?
$sql = "SELECT reiter FROM view_reiter WHERE reiter IN (SELECT CONCAT(lst.reiter, '__history') AS table_his FROM list_reiter AS lst LEFT JOIN view_reiter AS vReit ON lst.reiter = vReit.reiter WHERE lst.history = '0' AND vReit.table_type = 'BASE TABLE' AND lst.reiter NOT LIKE '%__history') AND table_type = 'BASE TABLE';"; $sql = "SELECT reiter FROM view_reiter WHERE reiter IN (SELECT CONCAT(lst.reiter, '__history') AS table_his FROM list_reiter AS lst LEFT JOIN view_reiter AS vReit ON lst.reiter = vReit.reiter WHERE lst.history = '0' AND vReit.table_type = 'BASE TABLE' AND lst.reiter NOT LIKE '%__history') AND table_type = 'BASE TABLE';";
$query = mysql_query($sql) or die(mysql_error()); $result = mysqli_query($db, $sql) OR die ('Query failed: '.mysqli_connect_error()."\n");
$count = mysql_num_rows($query); $count = mysqli_num_rows($result);
if ( $count >= 1 ) { if ( $count >= 1 ) {
while($row = mysql_fetch_assoc($query)) { while($row = mysqli_fetch_assoc($result)) {
$table = $row['reiter']; $table = $row['reiter'];
$sql = "DROP TABLE IF EXISTS $table;"; $sql = "DROP TABLE IF EXISTS $table;";
//echo $sql."\n"; if ($debug) echo "$sql\n";
mysql_query($sql) or die(mysql_error($db)); mysqli_query($db, $sql) OR die ('Query failed: '.mysqli_connect_error()."\n");
} }
} }
mysql_close($db); mysqli_close($db);
?> ?>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net -- http://www.phpmyadmin.net
-- --
-- Host: localhost -- Host: localhost
-- Generation Time: May 31, 2016 at 09:51 AM -- Generation Time: Jun 09, 2016 at 11:48 AM
-- Server version: 5.5.49-0ubuntu0.14.04.1-log -- Server version: 5.5.49-0ubuntu0.14.04.1-log
-- PHP Version: 5.5.9-1ubuntu4.17 -- PHP Version: 5.5.9-1ubuntu4.17
...@@ -154,6 +154,21 @@ END IF; ...@@ -154,6 +154,21 @@ END IF;
END IF; END IF;
IF ( SELECT MAX(version) FROM dataface__version ) < '1004' THEN
TRUNCATE dataface__version;
INSERT INTO dataface__version (version) VALUES ('1004');
END IF;
END$$ END$$
DELIMITER ; DELIMITER ;
...@@ -196,6 +211,27 @@ CREATE TABLE IF NOT EXISTS `dataface__mtimes` ( ...@@ -196,6 +211,27 @@ CREATE TABLE IF NOT EXISTS `dataface__mtimes` (
PRIMARY KEY (`name`) PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `dataface__mtimes`
--
INSERT INTO `dataface__mtimes` (`name`, `mtime`) VALUES
('dataface__failed_logins', 1465465646),
('dataface__modules', 1465465646),
('dataface__mtimes', 1465465646),
('dataface__version', 1465465646),
('list_gefahr', 1465465646),
('list_katReiter', 1465465646),
('list_lgk', 1465465646),
('list_reiter', 1465465646),
('mpi_users', 1465465646),
('view_ablageAll', 1465465646),
('view_chemAll', 1465465646),
('view_favorit', 1465465646),
('view_gefahr', 1465465646),
('view_reiter', 1465465646),
('view_user', 1465465646);
-- -------------------------------------------------------- -- --------------------------------------------------------
-- --
...@@ -211,7 +247,7 @@ CREATE TABLE IF NOT EXISTS `dataface__version` ( ...@@ -211,7 +247,7 @@ CREATE TABLE IF NOT EXISTS `dataface__version` (
-- --
INSERT INTO `dataface__version` (`version`) VALUES INSERT INTO `dataface__version` (`version`) VALUES
(1003); (1004);
-- -------------------------------------------------------- -- --------------------------------------------------------
......
...@@ -135,6 +135,20 @@ END IF; ...@@ -135,6 +135,20 @@ END IF;
END IF; END IF;
-- CHANGES V1.0.04 - 2016-06-09
-- ****************************
-- fs::conf.ini - change comment # to ;
-- fs::cronjob - update to mysqli driver
IF ( SELECT MAX(version) FROM dataface__version ) < '1004' THEN
-- nur file version
TRUNCATE dataface__version;
INSERT INTO dataface__version (version) VALUES ('1004');
END IF;
END; END;
$$ $$
......
# sortierung nach software, statt in index.php ; sortierung nach software, statt in index.php
__sql__ = "SELECT * FROM list_gefahr ORDER BY hsatz" __sql__ = "SELECT * FROM list_gefahr ORDER BY hsatz"
[__global__] [__global__]
noLinkFromListView = 1 noLinkFromListView = 1
[autoID] [autoID]
#widget:type = "hidden" ;widget:type = "hidden"
visibility:list = "hidden" visibility:list = "hidden"
#visibility:browse = "hidden" ;visibility:browse = "hidden"
#visibility:find = "hidden" ;visibility:find = "hidden"
[kategorie] [kategorie]
widget:label = "Gefahrenklasse" widget:label = "Gefahrenklasse"
...@@ -29,7 +29,7 @@ vocabulary = cmr ...@@ -29,7 +29,7 @@ vocabulary = cmr
filter = 1 filter = 1
[anweisung] [anweisung]
# Typ: tinyint(1) ; Typ: tinyint(1)
widget:type = checkbox widget:type = checkbox
vocabulary = anweisung vocabulary = anweisung
widget:label = BA notwendig widget:label = BA notwendig
......
...@@ -8,7 +8,7 @@ class tables_list_gefahr { ...@@ -8,7 +8,7 @@ class tables_list_gefahr {
$mailto = $app->_conf['_own']['mailto']; $mailto = $app->_conf['_own']['mailto'];
$mname = $app->_conf['_own']['mailname']; $mname = $app->_conf['_own']['mailname'];
$sql = "SELECT MAX(version) FROM dataface__version"; $sql = "SELECT MAX(version) FROM dataface__version";
list($db_ver) = mysql_fetch_row(mysql_query($sql, df_db())); list($db_ver) = xf_db_fetch_row(xf_db_query($sql, df_db()));
$db_ver = str_pad($db_ver, 4, 0, STR_PAD_LEFT); $db_ver = str_pad($db_ver, 4, 0, STR_PAD_LEFT);
$fs_rep = str_replace('.','',$fs_ver); $fs_rep = str_replace('.','',$fs_ver);
if ( $fs_rep == $db_ver ) if ( $fs_rep == $db_ver )
...@@ -19,7 +19,7 @@ class tables_list_gefahr { ...@@ -19,7 +19,7 @@ class tables_list_gefahr {
$app = Dataface_Application::getInstance(); $app = Dataface_Application::getInstance();
$fs_ver = $app->_conf['_own']['version']; $fs_ver = $app->_conf['_own']['version'];
$sql = "SELECT MAX(version) FROM dataface__version"; $sql = "SELECT MAX(version) FROM dataface__version";
list($db_ver) = mysql_fetch_row(mysql_query($sql, df_db())); list($db_ver) = xf_db_fetch_row(xf_db_query($sql, df_db()));
$db_ver = str_pad($db_ver, 4, 0, STR_PAD_LEFT); $db_ver = str_pad($db_ver, 4, 0, STR_PAD_LEFT);
$fs_rep = str_replace('.','',$fs_ver); $fs_rep = str_replace('.','',$fs_ver);
if ( $fs_rep != $db_ver ) { if ( $fs_rep != $db_ver ) {
......
...@@ -2,20 +2,20 @@ ...@@ -2,20 +2,20 @@
noLinkFromListView = 1 noLinkFromListView = 1
[autoID] [autoID]
#widget:type = "hidden" ;widget:type = "hidden"
visibility:list = "hidden" visibility:list = "hidden"
#visibility:browse = "hidden" ;visibility:browse = "hidden"
#visibility:find = "hidden" ;visibility:find = "hidden"
[lgk] [lgk]
#noLinkFromListView = 0 ;noLinkFromListView = 0
widget:label = "Lagerklasse" widget:label = "Lagerklasse"
[beschreibung] [beschreibung]
widget:atts:size = 75 widget:atts:size = 75
[priority] [priority]
#visibility:browse = "visible" ;visibility:browse = "visible"
widget:label = "Priorität" widget:label = "Priorität"
widget:description = "Berechnung der gefährlichsten Lagerklasse. Setzbar von höchste 0 bis niegrigste 255" widget:description = "Berechnung der gefährlichsten Lagerklasse. Setzbar von höchste 0 bis niegrigste 255"
validators:numeric = 1 validators:numeric = 1
......
# global valuelists.ini fuer gemeinsame verwendung verlinkt innerhalb tabellen ; global valuelists.ini fuer gemeinsame verwendung verlinkt innerhalb tabellen
# meist steht immer daselbe in jeder valuelists ; meist steht immer daselbe in jeder valuelists
# Vorteil: ; Vorteil:
# eine aenderung fuer alle ; eine aenderung fuer alle
# alles an einem ort ; alles an einem ort
# alle haben dann die gleiche Programmierung ; alle haben dann die gleiche Programmierung
# bessere uebersicht ; bessere uebersicht
# wichtige erlaeuterungen in einer datei zusammengefasst ; wichtige erlaeuterungen in einer datei zusammengefasst
# Nachteil: ; Nachteil:
# man muss etwas aufpassen, weil aenderung dann alle betrifft ; man muss etwas aufpassen, weil aenderung dann alle betrifft
# nach aendeerung suchen wer es benutzt und alle testen ; nach aendeerung suchen wer es benutzt und alle testen
# einfaches loeschen geht nicht so schnell ; einfaches loeschen geht nicht so schnell
# Syntax: ; Syntax:
# individuelle vocabularies mit eigenen Namen oder bei Gleichheit vocabulary_<table> ; individuelle vocabularies mit eigenen Namen oder bei Gleichheit vocabulary_<table>
# Suche: ; Suche:
# grep -ir 'vocabulary = <>' tables/* ; grep -ir 'vocabulary = <>' tables/*
# Wichtiges: ; Wichtiges:
# - sort (ORDER BY) nicht fuer schnellfilter moeglich ; - sort (ORDER BY) nicht fuer schnellfilter moeglich
# - das OTHER... hinter dem select, verschwindet wenn man diese sql's forumliert - wahrscheinlich wegen parser ; - das OTHER... hinter dem select, verschwindet wenn man diese sql's forumliert - wahrscheinlich wegen parser
# "SELECT IFNULL(field, '--') FROM list_table ORDER BY field" ; "SELECT IFNULL(field, '--') FROM list_table ORDER BY field"
# "SELECT tab.tabID, tab.name FROM view_pc AS tab ORDER BY tab.name" ; "SELECT tab.tabID, tab.name FROM view_pc AS tab ORDER BY tab.name"
# mittlerweile auch in php mit block_after moeglich ; mittlerweile auch in php mit block_after moeglich
# Beispiele: ; Beispiele:
# Mehrfachbenutzung ; Mehrfachbenutzung
## ;#
## con_softInv ;# con_softInv
## mpi_install ;# mpi_install
## mpi_inventar ;# mpi_inventar
## sort_lizenzSoft ;# sort_lizenzSoft
## view_invInst ;# view_invInst
## view_install ;# view_install
## ;#
#[version] ;[version]
#__sql__ = "SELECT verID, version FROM mpi_version ORDER BY orderID" ;__sql__ = "SELECT verID, version FROM mpi_version ORDER BY orderID"
# Einzelbenutzung ; Einzelbenutzung
## ;#
## con_verLic ;# con_verLic
## ;#
#[versionCon] ;[versionCon]
#__sql__ = "SELECT ver.verID, CONCAT(soft.software,' : ',ver.version) FROM mpi_version AS ver LEFT JOIN mpi_software AS soft ON ver.softID = soft.softID ORDER BY soft.software" ;__sql__ = "SELECT ver.verID, CONCAT(soft.software,' : ',ver.version) FROM mpi_version AS ver LEFT JOIN mpi_software AS soft ON ver.softID = soft.softID ORDER BY soft.software"
# BEGIN ; BEGIN
# ;
# view_chemAll ; view_chemAll
# ;
[vFilename] [vFilename]
__sql__ = "SELECT ablageID, filename FROM view_ablageAll" __sql__ = "SELECT ablageID, filename FROM view_ablageAll"
# ;
# list_gefahr ; list_gefahr
# ;
[lagerklasse] [lagerklasse]
__sql__ = "SELECT lgk,CONCAT(lgk,' : ',beschreibung) from list_lgk" __sql__ = "SELECT lgk,CONCAT(lgk,' : ',beschreibung) from list_lgk"
# ENDE ; ENDE
...@@ -3,9 +3,9 @@ noLinkFromListView = 1 ...@@ -3,9 +3,9 @@ noLinkFromListView = 1
[ablageID] [ablageID]
Key = PRI Key = PRI
#widget:type = "hidden" ;widget:type = "hidden"
#visibility:list = "hidden" ;visibility:list = "hidden"
#visibility:browse = "hidden" ;visibility:browse = "hidden"
visibility:find = "hidden" visibility:find = "hidden"
noLinkFromListView = 0 noLinkFromListView = 0
order = 1 order = 1
......
-- sql file gleich genutzt fuer mpg_chem und mpg_gfk -- version alone
-- fake version mpg_gfk auf sich selbst, also ohne mpg_chem -- fake auf sich selbst, also ohne db_chem's
CREATE OR REPLACE VIEW view_chemAll AS CREATE OR REPLACE VIEW view_chemAll AS
SELECT SELECT
'1' AS tabID, '1' AS tabID,
...@@ -18,7 +18,7 @@ CREATE OR REPLACE VIEW view_chemAll AS ...@@ -18,7 +18,7 @@ CREATE OR REPLACE VIEW view_chemAll AS
; ;
-- version mpg_chem bzw. auf sich selbst bzw. bei mpg_gfk auf mpg_chem -- version mpg mit mpg_chem
-- entsprechend erweitern/anpassen, wenn mehr chemie-db's existieren -- entsprechend erweitern/anpassen, wenn mehr chemie-db's existieren
-- siehe Beispiel mpi-dcts (4db's) in ../tables/view_chemAll/view_chemAll.sql -- siehe Beispiel mpi-dcts (4db's) in ../tables/view_chemAll/view_chemAll.sql
CREATE OR REPLACE VIEW view_chemAll AS CREATE OR REPLACE VIEW view_chemAll AS
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment