diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index c36a451951501d86e5fdb6bae18869415373c315..92ef324cf9f8130d0885e20f9fa6ce644e5c5517 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -156,7 +156,8 @@ class tform { */ function decode($record,$tab) { if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); - if(is_array($record)) { + $new_record = ''; + if(is_array($record)) { foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { switch ($field['datatype']) { case 'VARCHAR': @@ -191,6 +192,7 @@ class tform { } } + return $new_record; } @@ -216,7 +218,11 @@ class tform { $querystring = str_replace("{GROUPID}",$_SESSION["s"]["user"]["default_group"],$querystring); $querystring = str_replace("{GROUPS}",$_SESSION["s"]["user"]["groups"],$querystring); $table_idx = $this->formDef['db_table_idx']; - $querystring = str_replace("{RECORDID}",$record[$table_idx],$querystring); + + $tmp_recordid = (isset($record[$table_idx]))?$record[$table_idx]:0; + $querystring = str_replace("{RECORDID}",$tmp_recordid,$querystring); + unset($tmp_recordid); + $querystring = str_replace("{AUTHSQL}",$this->getAuthSQL('r'),$querystring); // Getting the records @@ -273,14 +279,14 @@ class tform { $val = $record[$key]; // If Datasource is set, get the data from there - if(is_array($field['datasource'])) { + if(isset($field['datasource']) && is_array($field['datasource'])) { $field["value"] = $this->getDatasourceData($field, $record); } switch ($field['formtype']) { case 'SELECT': + $out = ''; if(is_array($field['value'])) { - $out = ''; foreach($field['value'] as $k => $v) { $selected = ($k == $val)?' SELECTED':''; $out .= "<option value='$k'$selected>$v</option>\r\n"; @@ -362,7 +368,7 @@ class tform { foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { // If Datasource is set, get the data from there - if(is_array($field['datasource'])) { + if(@is_array($field['datasource'])) { $field["value"] = $this->getDatasourceData($field, $record); } @@ -371,8 +377,9 @@ class tform { if(is_array($field['value'])) { $out = ''; foreach($field['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; + //$selected = ($k == $val)?' SELECTED':''; + $selected = ''; + $out .= "<option value='$k'$selected>$v</option>\r\n"; } } $new_record[$key] = $out; @@ -464,12 +471,12 @@ class tform { if(is_array($record)) { foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { - if(is_array($field['validators'])) $this->validateField($key, $record[$key], $field['validators']); + if(isset($field['validators']) && is_array($field['validators'])) $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); switch ($field['datatype']) { case 'VARCHAR': - if(!is_array($record[$key])) { - $new_record[$key] = addslashes($record[$key]); + if(!@is_array($record[$key])) { + $new_record[$key] = (isset($record[$key]))?addslashes($record[$key]):''; } else { $new_record[$key] = implode($field['separator'],$record[$key]); } @@ -490,7 +497,7 @@ class tform { } break; case 'INTEGER': - $new_record[$key] = intval($record[$key]); + $new_record[$key] = (isset($record[$key]))?intval($record[$key]):0; //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; //if($key == 'refresh') die($record[$key]); break; @@ -503,7 +510,7 @@ class tform { } // The use of the field value is deprecated, use validators instead - if($field['regex'] != '') { + if(isset($field['regex']) && $field['regex'] != '') { // Enable that "." matches also newlines $field['regex'] .= 's'; if(!preg_match($field['regex'], $record[$key])) { @@ -531,6 +538,8 @@ class tform { global $app; + $escape = '`'; + // loop trough the validators foreach($validators as $validator) { @@ -845,6 +854,7 @@ class tform { function getDataRecord($primary_id) { global $app; + $escape = '`'; $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; return $app->db->queryOneRecord($sql); } @@ -925,7 +935,7 @@ class tform { */ // Insert the server_id, if the record has a server_id - $server_id = ($record_old["server_id"] > 0)?$record_old["server_id"]:0; + $server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0; if(isset($record_new["server_id"])) $server_id = $record_new["server_id"]; if(count($this->diffrec) > 0) { @@ -1000,7 +1010,7 @@ class tform { // Welcher Tab wird angezeigt if($this->errorMessage == '') { // wenn kein Fehler vorliegt - if($_REQUEST["next_tab"] != '') { + if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { // wenn nächster Tab bekannt $active_tab = $_REQUEST["next_tab"]; } else { diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index 034bb323b804bca834e052f49aecd2b6bc1ba797..0ef8ec0b43adff9da7bb0d30d759603039ce1900 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -55,15 +55,15 @@ class tform_actions { $app->tform->loadFormDef($tform_def_file); // Importing ID - $this->id = intval($_REQUEST["id"]); + $this->id = (isset($_REQUEST["id"]))?intval($_REQUEST["id"]):0; // show print version of the form - if($_GET["print_form"] == 1) { + if(isset($_GET["print_form"]) && $_GET["print_form"] == 1) { $this->onPrintForm(); } // send this form by email - if($_GET["send_form_by_mail"] == 1) { + if(isset($_GET["send_form_by_mail"]) && $_GET["send_form_by_mail"] == 1) { $this->onMailSendForm(); } @@ -449,7 +449,7 @@ class tform_actions { $app->tpl_defaults(); // Show the navigation bar of the form - if($app->tform->formDef['navibar'] == 'yes') { + if(isset($app->tform->formDef['navibar']) && $app->tform->formDef['navibar'] == 'yes') { $navibar = ''; if($app->tform->formDef['template_print'] != '') { $navibar .= '<a href="'.$app->tform->formDef['action'].'?id='.$this->id.'&print_form=1" target="_blank"><img src="../themes/iprg/icons/printer.png" border="0" alt="Drucken" /></a> '; @@ -530,7 +530,7 @@ class tform_actions { function loadPlugins($next_tab) { global $app; - if(is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) { + if(@is_array($app->tform->formDef["tabs"][$next_tab]["plugins"])) { $app->load('plugin_base'); foreach($app->tform->formDef["tabs"][$next_tab]["plugins"] as $plugin_name => $plugin_settings) { $plugin_class = $plugin_settings["class"];