Enhance alarm handling by adding MySQL escaping for phone numbers and refactoring SQL insertions
This commit is contained in:
@@ -429,6 +429,16 @@ class MonitoringServer extends IPSModule {
|
|||||||
$tdOld = $this->ReadAttributeString("AtAlarmtable");
|
$tdOld = $this->ReadAttributeString("AtAlarmtable");
|
||||||
$td = $tdOld;
|
$td = $tdOld;
|
||||||
|
|
||||||
|
MySQL_Open($idSql);
|
||||||
|
|
||||||
|
// === Helfer: Escaping für Strings ===
|
||||||
|
if (function_exists('MySQL_RealEscapeString')) {
|
||||||
|
$esc = fn(string $s) => MySQL_RealEscapeString($idSql, $s);
|
||||||
|
} else {
|
||||||
|
// Fallback, falls Modul-Funktion nicht verfügbar ist
|
||||||
|
$esc = fn(string $s) => addslashes($s);
|
||||||
|
}
|
||||||
|
|
||||||
$time = date("Y-m-d H:i:s");
|
$time = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
$art = $projectnumber." | ".$projectname. " | ISP ".$ispnr;
|
$art = $projectnumber." | ".$projectname. " | ISP ".$ispnr;
|
||||||
@@ -479,7 +489,28 @@ class MonitoringServer extends IPSModule {
|
|||||||
if ($sendphone == true){
|
if ($sendphone == true){
|
||||||
$phone = 1;
|
$phone = 1;
|
||||||
if ($numbersPhone != ""){
|
if ($numbersPhone != ""){
|
||||||
$phonenumbers = $numbersPhone;
|
|
||||||
|
$phonenumbers = str_getcsv($numbersPhone);
|
||||||
|
|
||||||
|
foreach ($phonenumbers as $phonenumber){
|
||||||
|
|
||||||
|
$sqlcall = sprintf(
|
||||||
|
"INSERT INTO alarmcalls (
|
||||||
|
alarmname, phonenumber
|
||||||
|
) VALUES (
|
||||||
|
'%s','%s'
|
||||||
|
)",
|
||||||
|
$esc($smname), $esc($phonenumber)
|
||||||
|
);
|
||||||
|
|
||||||
|
// === Ausführen ===
|
||||||
|
$okcall = MySQL_ExecuteSimple($idSql, $sqlcall);
|
||||||
|
if (!$okcall) {
|
||||||
|
echo "INSERT fehlgeschlagen.\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$phoned = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,7 +540,7 @@ class MonitoringServer extends IPSModule {
|
|||||||
$this->WriteAttributeString("AtAlarmtable", $td);
|
$this->WriteAttributeString("AtAlarmtable", $td);
|
||||||
//IPS_LogMessage ("Notify", "Alarmhistory updated");
|
//IPS_LogMessage ("Notify", "Alarmhistory updated");
|
||||||
|
|
||||||
MySQL_Open($idSql);
|
|
||||||
|
|
||||||
// Beispielwerte (ersetzen durch echte)
|
// Beispielwerte (ersetzen durch echte)
|
||||||
$topic = '';
|
$topic = '';
|
||||||
@@ -518,15 +549,6 @@ class MonitoringServer extends IPSModule {
|
|||||||
$smsnumber = '0';
|
$smsnumber = '0';
|
||||||
$smsed = 0;
|
$smsed = 0;
|
||||||
|
|
||||||
|
|
||||||
// === Helfer: Escaping für Strings ===
|
|
||||||
if (function_exists('MySQL_RealEscapeString')) {
|
|
||||||
$esc = fn(string $s) => MySQL_RealEscapeString($idSql, $s);
|
|
||||||
} else {
|
|
||||||
// Fallback, falls Modul-Funktion nicht verfügbar ist
|
|
||||||
$esc = fn(string $s) => addslashes($s);
|
|
||||||
}
|
|
||||||
|
|
||||||
// === INSERT bauen ===
|
// === INSERT bauen ===
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
"INSERT INTO alarms (
|
"INSERT INTO alarms (
|
||||||
@@ -547,7 +569,7 @@ class MonitoringServer extends IPSModule {
|
|||||||
$esc($topic), $esc($projectnumber), $esc($projectname), $esc($ispnumber), $esc($smname),
|
$esc($topic), $esc($projectnumber), $esc($projectname), $esc($ispnumber), $esc($smname),
|
||||||
(int)$sms, $esc($smsnumber), (int)$smsed,
|
(int)$sms, $esc($smsnumber), (int)$smsed,
|
||||||
(int)$whatsapp, $esc($numbersWhatsapp), (int)$whatsapped,
|
(int)$whatsapp, $esc($numbersWhatsapp), (int)$whatsapped,
|
||||||
(int)$phone, $esc($phonenumber), (int)$phoned,
|
(int)$phone, $esc($numbersPhone), (int)$phoned,
|
||||||
(int)$mail, $esc($email_address), (int)$mailed,
|
(int)$mail, $esc($email_address), (int)$mailed,
|
||||||
(int)$push
|
(int)$push
|
||||||
);
|
);
|
||||||
@@ -556,7 +578,6 @@ class MonitoringServer extends IPSModule {
|
|||||||
$ok = MySQL_ExecuteSimple($idSql, $sql);
|
$ok = MySQL_ExecuteSimple($idSql, $sql);
|
||||||
if (!$ok) {
|
if (!$ok) {
|
||||||
echo "INSERT fehlgeschlagen.\n";
|
echo "INSERT fehlgeschlagen.\n";
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (GetValue($trigid) == false) {
|
elseif (GetValue($trigid) == false) {
|
||||||
|
|||||||
Reference in New Issue
Block a user