"; */ include_once 'classes/lg-on_Smarty.class.php'; $smarty = new lgon_Smarty(); require_once("config.inc.php"); require_once("func_rollenrechte.php"); require_once("func_htmlclean.php"); $templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html"; require_once "language/german.inc.php"; // Rechteüberprüfung if ($user_admin == "") { require("index.php"); exit; } //Wenn man nicht angemeldet ist, darf man nicht auf die Seite if (!rore($user_admin, 'a_worterf', 'RE')) { require("lib/rechte.php"); exit; } // Rechteüberprüfung ende if (isset($_GET['action'])) { $action = $_GET['action']; } else { $action = ''; } if ($action == '') { dbconnect(); $query = "SELECT bezeichnung FROM thema GROUP BY bezeichnung ORDER BY tid DESC"; $result = $db->query($query) or die("Cannot execute query"); while ($row = $result->fetch_array()) { $value[] = $row; } $smarty->assign('table_data', $value); $db = dbconnect(); $query = "SELECT kid, bezeichnung FROM kategorie ORDER BY bezeichnung ASC"; $result = $db->query($query) or die("Cannot execute query"); while ($row = $result->fetch_array()) { $value1[] = $row; } $smarty->assign('table_data1', $value1); } # Beim Erfassen wird unterschieden ob eine Textstelle angegeben wurde oder nicht # Wird eine angegeben, dann wird geprüft, ob sie den Vorgaben entspricht und dann den insert durchgeführt # Wird eine keine Textstelle angegeben dann wird der insert ohne Überprüfung der Textstelle durchgeführt if ($action == 'erfassen1') { $db = dbconnect(); $datum = "$_POST[beg_jahr]-$_POST[beg_mon]-$_POST[beg_tag]"; $vorwort = htmlclean($_POST['vorwort'], $db); $wort = htmlclean($_POST['wort'], $db); $botschaft = htmlclean($_POST['botschaft'], $db); $inhalt = htmlclean($_POST['inhalt'], $db); $zusammenfassung = htmlclean($_POST['zusammenfassung'], $db); $kontext = htmlclean($_POST['kontext'], $db); $textstelle = $_POST['textstelle']; if ($_POST['ukid'] == NULL) { $ukid = 'NULL'; } else { $ukid = $_POST['ukid']; setcookie("ck_ukid", $ukid); } if (@checkdate($_POST['beg_mon'], $_POST['beg_tag'], $_POST['beg_jahr']) == 0) { // checkdate liefert 0 & 1 zurück: 0 wenn Datum falsch, 1 wenn Datum richtig $smarty->assign('wort_erfassen_checkdate_err', "1"); $fehler = TRUE; } elseif (( // Pregs auf vollständige Bibelbücher überprüft // Bücher mit mehreren Bücher 1. Johannes... preg_match("/^([1-9])\.\s* (Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus)\s*[0-9]{1,2}(\,)?\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle) or // Bücher mit nur einem Buch Rut 3,5-7 preg_match("/^(Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Johannes|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung)\s*[0-9]{1,3}(\,)?\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle) or // Bücher ohne Kapitel preg_match("/^(Philemon|Judas)\s*(aus)?\s*[0-9]{1,3}(\.|-)?([0-9]{1,3})?(\.)?([0-9]{1,3})?$/im", $textstelle)) AND $textstelle != "") { function refill($start, $ende) { for ($i = $start; $i < $ende; $i++) { $j .= "|$i"; } $j .= "|" . $i . "|"; return $j; } function refillpunkt($zahl1, $zahl2, $zahl3) { $j = "|$zahl1|$zahl2|"; if ($zahl3 != '') { $j .= "$zahl3|"; } return $j; } function makeLink($a, $b, $c, $d, $e, $f, $g, $h, $lid) { settype($f, "integer"); if ($e == '-') { $d = refill($d, $f); $e = ""; $f = ""; } elseif ($e == '.') { $d = refillpunkt($d, $f, $h); $e = ""; $f = ""; $g = ""; $h = ""; } else { $d = "|$d|"; } $db = dbconnect(); $sql = $db->query("UPDATE quelle SET txt_anz_buch=trim('$a') , txt_buch=trim('$b') , txt_kapitel=trim('$c') , txt_vers =trim('$d') WHERE lid='$lid'"); } // Wenn Wörter dem richtigen Aufbau entsprechen, dann weiter if (isset($_POST['stapgd'])) { if ($_POST['stapgd'] == 'Y') { $stapgd = 'Y'; } else { $stapgd = 'N'; } } else { $stapgd = 'N'; } ## Prüfen, ob es das Thema schon gibt $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## wenn nicht, dann eintragen if ($row['tid'] == '') { # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO thema ( bezeichnung) VALUES ('$_POST[thema]') "); } ## ThemaID (tid) abfragen $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## Unterhema eintragen # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO unterthema ( tid, bezeichnung) VALUES ('$row[tid]', '$_POST[unterthema]') "); ## UnterThemaID (utid) abfragen $result1 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row[tid]' "); $row1 = $result1->fetch_array(); #https://marius.bloggt-in-braunschweig.de/2019/02/21/mariadb-bugfix-sorgt-fuer-ein-bisschen-aerger/ # STRICT_TRANS_TABLES Error # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO quelle ( Textstelle , Ueberschrift , thema , unterthema , vorwort , botschaft , Textwort , Inhalt , zusammenfassung , kontext , Datum , stapgd , kid , ukid ) VALUES ( '$textstelle' , \"" . $_POST['uberschrift'] . "\" , $row[tid] , $row1[utid] , '$vorwort' , '$botschaft' , '$wort' , '$inhalt' , '$zusammenfassung' , '$kontext' , '$datum' , '$stapgd' , \"" . $_POST['kid'] . "\" , $ukid )"); $lid = $db->insert_id; $textstelle = preg_replace_callback("/^([1-9]\.)*\s*" . //1 a "(Makkabäer|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Gebet Manasses|Stücke zu Daniel|Stücke zu Ester|Baruch|Weisheit|Judit|Judith|Sirach|Josua|Richter|Rut|Ruth|Esra|Nehemia|Esther|Ester|Hiob|Ijob|Psalm|Sprüche|Prediger|Hoheslied|Jesaja|Jeremia|Klagelieder|Hesekiel|Ezechiel|Daniel|Hosea|Joel|Amos|Tobias|Obadja|Jona|Micha|Nahum|Habakuk|Zefanja|Haggai|Sacharja|Maleachi|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Galater|Epheser|Philipper|Kolosser|Titus|Hebräer|Jakobus|Offenbarung|Philemon|Judas)\s*" . //2 "([0-9]{1,3})" . //3 c "(\,)?\s*" . //4 "(aus)?\s*" . //5 "([0-9]{0,3})" . //6 d "(\.|-)?" . //7 e "([0-9]{0,3})?" . //8 f "(\.|-)?" . //9 g "(\s)?" . //10 g "([0-9]{0,3})" . //11 h "$/", function($m) use (&$lid) { return makeLink($m[1], $m[2], $m[3], $m[6], $m[7], $m[8], $m[9], $m[11], $lid); }, $textstelle); if (!$sql1) { $smarty->assign('wort_erfassen_sql_err1', "1"); $fehler = TRUE; } } elseif ($textstelle == "") { if ($_POST['stapgd'] == 'Y') { $stapgd = 'Y'; } else { $stapgd = 'N'; } ## Prüfen, ob es das Thema schon gibt $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## wenn nicht, dann eintragen if ($row['tid'] == '') { # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO thema ( bezeichnung) VALUES ('$_POST[thema]') "); } ## ThemaID (tid) abfragen $result = $db->query("SELECT tid FROM thema WHERE bezeichnung = '$_POST[thema]'"); $row = $result->fetch_array(); ## Unterhema eintragen # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO unterthema ( tid, bezeichnung) VALUES ('$row[tid]', '$_POST[unterthema]') "); ## UnterThemaID (utid) abfragen $result1 = $db->query("SELECT utid FROM unterthema WHERE bezeichnung = '$_POST[unterthema]' AND tid='$row[tid]' "); $row1 = $result1->fetch_array(); # $sql1 = $db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); $sql1 = $db->query("INSERT INTO quelle ( Textstelle , Ueberschrift , thema , unterthema , botschaft , Textwort , Inhalt , zusammenfassung , kontext , Datum , stapgd , kid , ukid ) VALUES ( '$textstelle' , \"" . $_POST['uberschrift'] . "\" , $row[tid] , $row1[utid] , '$botschaft' , '$wort' , '$inhalt' , '$zusammenfassung' , '$kontext' , '$datum' , '$stapgd' , \"" . $_POST['kid'] . "\" , $ukid )"); if (!$sql1) { $smarty->assign('wort_erfassen_sql_err1', "1"); $fehler = TRUE; } } else { $smarty->assign('wort_erfassen_sql_err2', "1"); $fehler = TRUE; } if (!isset($fehler)) { $smarty->assign('wort_erfassen_success', "1"); } } $smarty->assign('action', "$action"); $smarty->display("$template/$templatename"); ?>