'sanitize_search_string')); switch (get_request_var('action')) { case 'save': foreach ($settings{get_request_var('tab')} as $field_name => $field_array) { if (($field_array['method'] == 'header') || ($field_array['method'] == 'spacer' )){ /* do nothing */ } elseif ($field_array['method'] == 'checkbox') { if (isset_request_var($field_name)) { db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, 'on')", array($field_name)); } else { db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, '')", array($field_name)); } } elseif ($field_array['method'] == 'checkbox_group') { foreach ($field_array['items'] as $sub_field_name => $sub_field_array) { if (isset_request_var($sub_field_name)) { db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, 'on')", array($sub_field_name)); } else { db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, '')", array($sub_field_name)); } } } elseif ($field_array['method'] == 'dirpath') { if (get_nfilter_request_var($field_name) != '' && !is_dir(get_nfilter_request_var($field_name))) { raise_message(8); } else { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name))); } } elseif ($field_array['method'] == 'filepath') { if (get_nfilter_request_var($field_name) != '' && !is_file(get_nfilter_request_var($field_name))) { raise_message(8); } else { $continue = true; if ($field_name == 'path_cactilog') { $extension = pathinfo(get_nfilter_request_var($field_name), PATHINFO_EXTENSION); if ($extension != 'log') { raise_message(9); $continue = false; } } if ($continue) { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name))); } } } elseif ($field_array['method'] == 'textbox_password') { if (get_nfilter_request_var($field_name) != get_nfilter_request_var($field_name.'_confirm')) { raise_message(4); break; } elseif (!isempty_request_var($field_name)) { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name))); } } elseif ((isset($field_array['items'])) && (is_array($field_array['items']))) { foreach ($field_array['items'] as $sub_field_name => $sub_field_array) { if (isset_request_var($sub_field_name)) { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($sub_field_name, get_nfilter_request_var($sub_field_name))); } } } elseif ($field_array['method'] == 'drop_multi') { if (isset_request_var($field_name)) { if (is_array(get_nfilter_request_var($field_name))) { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, implode(',', get_nfilter_request_var($field_name)))); } else { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name))); } } else { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, "")', array($field_name)); } } elseif (isset_request_var($field_name)) { if (is_array(get_nfilter_request_var($field_name))) { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, implode(',', get_nfilter_request_var($field_name)))); } else { db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name))); } } } if (isset_request_var('log_verbosity')) { if (!isset_request_var('selective_debug')) { db_execute('REPLACE INTO settings (name, value) VALUES ("selective_debug", "")'); } if (!isset_request_var('selective_plugin_debug')) { db_execute('REPLACE INTO settings (name, value) VALUES ("selective_plugin_debug", "")'); } } /* update snmpcache */ snmpagent_global_settings_update(); api_plugin_hook_function('global_settings_update'); raise_message(1); /* reset local settings cache so the user sees the new settings */ kill_session_var('sess_config_array'); if (isset_request_var('header') && get_nfilter_request_var('header') == 'false') { header('Location: settings.php?header=false&tab=' . get_request_var('tab')); } else { header('Location: settings.php?tab=' . get_request_var('tab')); } break; case 'send_test': email_test(); break; default: top_header(); /* set the default settings category */ if (!isset_request_var('tab')) { /* there is no selected tab; select the first one */ if (isset($_SESSION['sess_settings_tab'])) { $current_tab = $_SESSION['sess_settings_tab']; } else { $current_tab = array_keys($tabs); $current_tab = $current_tab[0]; } } else { $current_tab = get_request_var('tab'); } $_SESSION['sess_settings_tab'] = $current_tab; /* draw the categories tabs on the top of the page */ print "