<?php function mailnachricht($wort, $art, $id) { $db = dbconnect(); #12.09.2014 $user_admin=$_COOKIE["user_admin"]; $empfaenger = "admin@lg-on.de"; $betreff = "Leitgedanken-Online: Fehler bei Bibelstelle"; if($art=='T'){ $systemart="Textwort"; $result1_daten = $db->query("SELECT ueberschrift,date_format(datum, '%d.%m.%Y') datum FROM quelle WHERE lid = '$id' "); $row_daten = $result1_daten->fetch_array(); $info ="$row_daten[ueberschrift] ($row_daten[datum])"; } if($art=='L'){ $systemart="Publikationen"; $result1_daten = $db->query("SELECT thema FROM lue_quelle WHERE eid = '$id' "); $row_daten = $result1_daten->fetch_array(); $info ="$row_daten[thema]"; } if($art=='B'){ $systemart="Luther Bibel 2017"; $info ="Falscher Textverweis in Bibelstelle"; } $result_user = $db->query("SELECT nachname, vorname FROM admin where user=\"$user_admin\""); $row_user = $result_user->fetch_array(); $text = " <html> <head> <title>Fehler bei Bibelstelle</title> </head> <body> <font face='Arial' size='2'> Guten Tag!<br><br> In Leitgedanken Online wurde ein Fehler in der einer Bibelstelle gefunden. <br> <br> <table> <tr> <td valign='top'> <font face='Arial' size='2'> Textwort: </font> </td> <td valign='top'> <font face='Arial' size='2'> <b>$wort</b> </font> </td> </tr> <tr> <td valign='top'> <font face='Arial' size='2'> System: </font> </td> <td valign='top'> <font face='Arial' size='2'> <b>$systemart</b> </font> </td> </tr> <tr> <td valign='top'> <font face='Arial' size='2'> Thema: </font> </td> <td valign='top'> <font face='Arial' size='2'> <b>$info</b> </font> </td> </tr> <tr> <td valign='top'> <font face='Arial' size='2'> ID: </font> </td> <td valign='top'> <font face='Arial' size='2'> <b>$id</b> </font> </td> </tr> <tr> <td valign='top'> <font face='Arial' size='2'> Betroffener: </font> </td> <td valign='top'> <font face='Arial' size='2'> <b>$row_user[vorname] $row_user[nachname]</b> </font> </td> </tr> </table> <br> Bitte korrigieren Sie den Fehler umgehend! <p> Diese Mail wurde automatisch generiert!<br> Antworten Sie daher nicht auf diese Mail<br> <br> Vielen Dank </body> </html>"; $headers = "MIME-Version: 1.0\n"; #$headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "Content-type: text/html; charset=utf-8\n"; $headers .= "From: Leitgedanken Online <admin@lg-on.de>\n"; @$return = @mail($empfaenger, $betreff, $text, $headers); } # Text zwischen Text ausblenden, wie Überschriften # http://entwickler-forum.de/showthread.php?t=61357 function strip_only($str, $tags, $stripContent = false) { $content = ''; if(!is_array($tags)) { $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags)); if(end($tags) == '') array_pop($tags); } foreach($tags as $tag) { if ($stripContent) $content = '(.+</'.$tag.'[^>]*>|)'; $str = preg_replace('#</?'.$tag.'[^>]*>'.$content.'#is', '', $str); } return $str; } function splitWord($a, $b, $c, $d, $e, $f, $g, $h, $art, $id) { /* echo "a: '$a'<br> b: '$b'<br> c: '$c'<br> d: '$d'<br> e: '$e'<br> f: '$f'<br> g: '$g'<br> h: '$h'<br> i: '$i'<br> <br> "; */ // mehrere Textwörter if($g=='-'){ $db = dbconnect(); $result1_pruef = $db->query("SELECT count(*) Anz FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$f' ORDER BY bid ASC "); $row_pruef1 = $result1_pruef->fetch_array(); $result2_pruef = $db->query("SELECT count(*) Anz FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$h' ORDER BY bid ASC "); $row_pruef2 = $result2_pruef->fetch_array(); if($row_pruef1['Anz'] > 0 AND $row_pruef2 ['Anz'] > 0){ $result1 = $db->query("SELECT bid FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$f' ORDER BY bid ASC "); $row1 = $result1->fetch_array(); $result2 = $db->query("SELECT bid FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$h' ORDER BY bid ASC "); $row2 = $result2->fetch_array(); $query = "SELECT vers, inhalt FROM bibel_lut_2017 WHERE bid between $row1[bid] AND $row2[bid] AND vers !='' ORDER BY bid ASC "; $result = $db->query( $query) or die ("Cannot execute query: mehrere Textwörter"); // Schleife über alle Kapitel der Bibel $ret_wort = ""; while ($row = $result->fetch_array()){ # Text zwischen Überschriften wegfiltern $tags = 'h3'; $inhalt = strip_only($row['inhalt'], $tags, true); // text $ret_wort .= " <span class=\'verse\'>$row[vers]</span> $inhalt"; } }else{ $ret_wort ="Die Textstelle konnte nicht geladen werden<br>Evtl liegt ein Schreibfehler vor. <br>Der Administrator wurde verständigt!"; $wort="$a$b $c$d$e$f$g$h"; mailnachricht($wort, $art,$id); } } // einzelne Textstellen if($g=='' AND $f!=''){ $db = dbconnect(); $result_pruef = $db->query("SELECT count(*) Anz FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$f' ORDER BY bid ASC "); $row_pruef = $result_pruef->fetch_array(); if($row_pruef['Anz'] > 0){ $result1 = $db->query("SELECT bid FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers = '$f' ORDER BY bid ASC "); $row1 = $result1->fetch_array(); $query = "SELECT vers, inhalt FROM bibel_lut_2017 WHERE bid = $row1[bid] AND vers !='' ORDER BY bid ASC "; $result = $db->query( $query) or die ("Cannot execute query"); // Schleife über alle Kapitel der Bibel $ret_wort = ""; while ($row = $result->fetch_array()){ # Text zwischen Überschriften wegfiltern $tags = 'h3'; $inhalt = strip_only($row['inhalt'], $tags, true); // text $ret_wort .= " <span class=\'verse\'>$row[vers]</span> $inhalt"; } }else{ $ret_wort ="Die Textstelle konnte nicht geladen werden<br>Evtl liegt ein Schreibfehler vor. <br>Der Administrator wurde verständigt!"; $wort="$a$b $c$d$e$f$g$h"; mailnachricht($wort, $art,$id); } } // ganze Kapitel if($g=='' AND $f==''){ $db = dbconnect(); $query = "SELECT vers, inhalt FROM bibel_lut_2017 WHERE anz_buch = '$a' AND buch = '$b' AND kapitel ='$c' AND vers != '' ORDER BY bid ASC "; $result = $db->query( $query) or die ("Cannot execute query: Ganze Kapitel"); // Schleife über alle Kapitel der Bibel $ret_wort = ""; while ($row = $result->fetch_array()){ # Text zwischen Überschriften wegfiltern $tags = 'h3'; $inhalt = strip_only($row['inhalt'], $tags, true); // text $ret_wort .= " <span class=\'verse\'>$row[vers]</span> $inhalt"; } $max=1000; $origin=strlen($ret_wort); $ret_wort = substr($ret_wort.' ' , 0 , $max + 1); $ret_wort = substr($ret_wort , 0 , strrpos ($ret_wort , ' ')); $ret_wort = strip_tags($ret_wort, '<nobr><em>,<span>,<br>,<b>,<strong>,<ul>,<li>,<ol>,<a>'); if($max<=$origin){ # Funktioniert manchmal nicht, da nicht zwischen Wort getrennt wird [strrpos ($ret_wort , ' ')] sondern immer nach einem # vollständigen Wort. Das Merkmal ist: Wenn ein Leerzeichen kommt, dann trennen. # Es kann passieren, dass es dann nach dem Wort span [<span class=\'verse\'>] getrennt wird, # Dann sieht es so aus: <span<nobr> <b>[...]</b></nobr>, weil nach dem Span ein Leerzeichen kommt. # Der Tag wird dann nicht dargestellt. # Zur Minderung: $ret_wort = strip_tags($ret_wort, '<nobr><em>,<span>,<br>,<b>,<strong>,<ul>,<li>,<ol>,<a>'); $ret_wort.="<nobr> <b>[...]</b></nobr>"; } } $wort="$a$b $c$d$e$f$g$h"; #$sql1 = $db->query( "INSERT INTO test (wort, inhalt) VALUES ('$wort', '$ret_wort')" ); $ret_wort=trim($ret_wort); $ret_wort = strip_tags($ret_wort, '<nobr><em>,<br>,<b>,<strong>,<ul>,<li>,<ol>,<a>'); $ret_wort =str_replace ("#", "\#" , $ret_wort); # Neu mit Lutherbibel 2017 (real_escape_string) damit die Hochkommas escaped werden $ret_wort = $db->real_escape_string($ret_wort); #echo "<pre>$ret_wort</pre>"; return $ret_wort; } function getword($wort){ $wort = str_replace (array("ä", "Ä", "ü", "Ü", "ö", "Ö", "ß") , array("ä", "Ä", "ü", "Ü", "ö", "Ö", "ß") , $wort ); $trenner = explode("|", $wort); $wort = $trenner[0]; if(isset($trenner[1])){ $art = $trenner[1]; }else{ $art = ""; } if(isset($trenner[2])){ $id = $trenner[2]; }else{ $id = ""; } return preg_replace_callback("/([0-9][0-9]?\.\s*)?(Philemon|Judas|Johannes|Mose|Könige|Chronik|Korinther|Samuel|Thessalonicher|Timotheus|Petrus|Sirach|Mose|Josua|Richter|Rut|Ruth|Samuel|Könige|Chronik|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|Judit|Weisheit|Baruch|Makkabäer|Stücke zu Ester|Stücke zu Daniel|Gebet Manasses|Matthäus|Markus|Lukas|Apostelgeschichte|Römer|Korinther|Galater|Epheser|Philipper|Kolosser|Thessalonicher|Timotheus|Titus|Hebräer|Jakobus|Offenbarung)(\s*[0-9]{1,3})(,\s*)?(\s*aus\s*|\s*Vers\s*)?([0-9]{0,3})?(\-|\.{0,1})?([0-9]{0,3})?/", function($m) use (&$art,&$id) { return splitWord($m[1], $m[2], $m[3], $m[4], $m[5], $m[6], $m[7], $m[8],"$art", "$id");}, $wort); } ?>