devices_apply.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/auth.php");
  3. require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/languages/" . HTML_LANG . ".php");
  4. if (!defined("CONFIG")) die("Not defined");
  5. // Определяем page_url для сессии
  6. $page_url = basename($_SERVER['SCRIPT_NAME'], '.php');
  7. if (getPOST("ApplyForAll", $page_url)) {
  8. // Получаем массив ID устройств
  9. $dev_id = getPOST("fid", $page_url, []);
  10. // Получаем и валидируем параметры через getPOST
  11. $a_dev_type = (int)getPOST("a_dev_type", $page_url, 0);
  12. $a_device_model_id = (int)getPOST("a_device_model_id", $page_url, 0);
  13. $a_building_id = (int)getPOST("a_building_id", $page_url, 0);
  14. $a_snmp_version = (int)getPOST("a_snmp_version", $page_url, 0);
  15. $a_ro_community = trim(getPOST("a_ro_community", $page_url, 'public'));
  16. $a_rw_community = trim(getPOST("a_rw_community", $page_url, 'private'));
  17. $msg = "Massive change devices!";
  18. LOG_WARNING($db_link, $msg);
  19. $all_ok = true;
  20. foreach ($dev_id as $val) {
  21. if (!$val = (int)$val) { // Пропускаем неправильные ID
  22. continue;
  23. }
  24. $device = [];
  25. if (getPOST("e_set_type", $page_url) !== null) {
  26. $device['device_type'] = $a_dev_type;
  27. }
  28. if (getPOST("e_set_model", $page_url) !== null) {
  29. $device['device_model_id'] = $a_device_model_id;
  30. $device['vendor_id'] = get_device_model_vendor($db_link, $a_device_model_id);
  31. }
  32. if (getPOST("e_set_snmp_version", $page_url) !== null) {
  33. $device['snmp_version'] = $a_snmp_version;
  34. }
  35. if (getPOST("e_set_ro_community", $page_url) !== null) {
  36. $device['community'] = $a_ro_community;
  37. }
  38. if (getPOST("e_set_rw_community", $page_url) !== null) {
  39. $device['rw_community'] = $a_rw_community;
  40. }
  41. if (getPOST("e_set_building", $page_url) !== null) {
  42. $device['building_id'] = $a_building_id;
  43. }
  44. if (!empty($device)) {
  45. // 🔒 Безопасный вызов: параметризованное условие
  46. $ret = update_record($db_link, "devices", "id = ?", $device, [$val]);
  47. if (!$ret) {
  48. $all_ok = false;
  49. }
  50. }
  51. }
  52. if ($all_ok) {
  53. print "Success!";
  54. } else {
  55. print "Fail!";
  56. }
  57. }
  58. ?>