diff --git a/4dev/database/table/edit_access.sql b/4dev/database/table/edit_access.sql index b2fa3322..40e3e1f6 100644 --- a/4dev/database/table/edit_access.sql +++ b/4dev/database/table/edit_access.sql @@ -8,7 +8,7 @@ -- DROP TABLE edit_access; CREATE TABLE edit_access ( edit_access_id SERIAL PRIMARY KEY, - name VARCHAR(255) UNIQUE, + name VARCHAR UNIQUE, description VARCHAR, COLOR VARCHAR ) INHERITS (edit_generic) WITHOUT OIDS; diff --git a/4dev/database/table/edit_group.sql b/4dev/database/table/edit_group.sql index ef6348cb..93365c62 100644 --- a/4dev/database/table/edit_group.sql +++ b/4dev/database/table/edit_group.sql @@ -8,7 +8,7 @@ -- DROP TABLE edit_group; CREATE TABLE edit_group ( edit_group_id SERIAL PRIMARY KEY, - name VARCHAR(50), + name VARCHAR, enabled SMALLINT NOT NULL DEFAULT 0, edit_scheme_id INT, edit_access_right_id INT NOT NULL, diff --git a/4dev/database/table/edit_language.sql b/4dev/database/table/edit_language.sql index 654eccd6..282d0d21 100644 --- a/4dev/database/table/edit_language.sql +++ b/4dev/database/table/edit_language.sql @@ -9,12 +9,12 @@ -- DROP TABLE edit_language; CREATE TABLE edit_language ( edit_language_id SERIAL PRIMARY KEY, - short_name VARCHAR(2), - long_name VARCHAR(70), - iso_name VARCHAR(12), + short_name VARCHAR, + long_name VARCHAR, + iso_name VARCHAR, order_number INT, enabled SMALLINT NOT NULL DEFAULT 0, - lang_default SMALLINT NOT NULL DEFAULT 0 UNIQUE + lang_default SMALLINT NOT NULL DEFAULT 0 ) INHERITS (edit_generic) WITHOUT OIDS; INSERT INTO edit_language (short_name, long_name, iso_name, order_number, enabled, lang_default) VALUES ('en', 'English', 'UTF-8', 1, 1, 1); diff --git a/4dev/database/table/edit_menu_group.sql b/4dev/database/table/edit_menu_group.sql index 34f64896..f66d929c 100644 --- a/4dev/database/table/edit_menu_group.sql +++ b/4dev/database/table/edit_menu_group.sql @@ -8,8 +8,8 @@ -- DROP TABLE edit_menu_group; CREATE TABLE edit_menu_group ( edit_menu_group_id SERIAL PRIMARY KEY, - name VARCHAR(255), - flag VARCHAR(50), + name VARCHAR, + flag VARCHAR, order_number INT NOT NULL ) INHERITS (edit_generic) WITHOUT OIDS; diff --git a/4dev/database/table/edit_page.sql b/4dev/database/table/edit_page.sql index ee98585c..84ecea6e 100644 --- a/4dev/database/table/edit_page.sql +++ b/4dev/database/table/edit_page.sql @@ -8,8 +8,8 @@ -- DROP TABLE edit_page; CREATE TABLE edit_page ( edit_page_id SERIAL PRIMARY KEY, - filename VARCHAR(70), - name VARCHAR(255) UNIQUE, + filename VARCHAR, + name VARCHAR UNIQUE, order_number INT NOT NULL, online SMALLINT NOT NULL DEFAULT 0, menu SMALLINT NOT NULL DEFAULT 0, diff --git a/4dev/database/table/edit_query_string.sql b/4dev/database/table/edit_query_string.sql index f919af7a..064127eb 100644 --- a/4dev/database/table/edit_query_string.sql +++ b/4dev/database/table/edit_query_string.sql @@ -8,8 +8,8 @@ -- DROP TABLE edit_query_string; CREATE TABLE edit_query_string ( edit_query_string_id SERIAL PRIMARY KEY, - name VARCHAR(255), - value VARCHAR(255), + name VARCHAR, + value VARCHAR, enabled SMALLINT NOT NULL DEFAULT 0, dynamic SMALLINT NOT NULL DEFAULT 0, edit_page_id INT NOT NULL, diff --git a/4dev/database/table/edit_scheme.sql b/4dev/database/table/edit_scheme.sql index c04bd9ae..809dfe9e 100644 --- a/4dev/database/table/edit_scheme.sql +++ b/4dev/database/table/edit_scheme.sql @@ -9,12 +9,12 @@ CREATE TABLE edit_scheme ( edit_scheme_id SERIAL PRIMARY KEY, enabled SMALLINT NOT NULL DEFAULT 0, - name VARCHAR(50), - header_color VARCHAR(7), - css_file VARCHAR(50), - template VARCHAR(50) + name VARCHAR, + header_color VARCHAR, + css_file VARCHAR, + template VARCHARs ) INHERITS (edit_generic) WITHOUT OIDS; -INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', '#E0E2FF', 1); -INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', '#CC7E7E', 1); -INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', '#B0C4B3', 1); +INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Default Scheme', 'E0E2FF', 1); +INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Admin', 'CC7E7E', 1); +INSERT INTO edit_scheme (name, header_color, enabled) VALUES ('Visitor', 'B0C4B3', 1); diff --git a/4dev/database/table/edit_temp_files.sql b/4dev/database/table/edit_temp_files.sql index f822eda0..301df712 100644 --- a/4dev/database/table/edit_temp_files.sql +++ b/4dev/database/table/edit_temp_files.sql @@ -7,5 +7,5 @@ -- DROP TABLE temp_files; CREATE TABLE temp_files ( - filename VARCHAR(250) + filename VARCHAR ); diff --git a/4dev/database/table/edit_visible_group.sql b/4dev/database/table/edit_visible_group.sql index eb794d1e..5414a0f7 100644 --- a/4dev/database/table/edit_visible_group.sql +++ b/4dev/database/table/edit_visible_group.sql @@ -8,8 +8,8 @@ -- DROP TABLE edit_visible_group; CREATE TABLE edit_visible_group ( edit_visible_group_id SERIAL PRIMARY KEY, - name VARCHAR(255), - flag VARCHAR(50) + name VARCHAR, + flag VARCHAR ) INHERITS (edit_generic) WITHOUT OIDS; DELETE FROM edit_visible_group; diff --git a/www/admin/edit_base.inc b/www/admin/edit_base.inc index 14bf0850..cf016584 100644 --- a/www/admin/edit_base.inc +++ b/www/admin/edit_base.inc @@ -24,7 +24,7 @@ extract($_POST, EXTR_SKIP); $table_width = 750; // this is for certain CMS modules that set a relative path -define(REL_PATH, ''); +define('REL_PATH', ''); ob_start(); include("config.inc"); @@ -137,7 +137,7 @@ $DATA['GROUP_NAME'] = $_SESSION["GROUP_NAME"]; $DATA['GROUP_LEVEL'] = $_SESSION["GROUP_LEVEL"]; $PAGES = $_SESSION["PAGES"]; -//$form->debug('menu', $form->print_ar($PAGES)); +//$form->debug('menu', $form->printAr($PAGES)); // baue nav aus $PAGES ... for ($i = 0; $i < count($PAGES); $i ++) { @@ -292,7 +292,7 @@ if ($form->yes) { print "[No valid page definition given]"; break; } -// $form->debug('edit', "Elements:
".$form->print_ar($elements));
+//		$form->debug('edit', "Elements: 
".$form->printAr($elements));
 	$DATA['elements'] = $elements;
 	$DATA['hidden'] = $form->formCreateHiddenFields();
 	$DATA['save_delete'] = $form->formCreateSaveDelete();
@@ -304,7 +304,7 @@ $DEBUG_DATA['DEBUG'] = $DEBUG_TMPL;
 // create main data array
 $CONTENT_DATA = array_merge($HEADER, $DATA, $DEBUG_DATA);
 // data is 1:1 mapping (all vars, values, etc)
-while (list($key, $value) = each($CONTENT_DATA)) {
+foreach ($CONTENT_DATA as $key => $value) {
 	$smarty->assign($key, $value);
 }
 if (is_dir(BASE.TEMPLATES_C)) {
diff --git a/www/lib/CoreLibs/ACL/Login.inc b/www/lib/CoreLibs/ACL/Login.inc
index 784e60f3..fe6c4518 100644
--- a/www/lib/CoreLibs/ACL/Login.inc
+++ b/www/lib/CoreLibs/ACL/Login.inc
@@ -332,7 +332,7 @@ class Login extends \CoreLibs\DB\IO
 				$q .= "eu.edit_access_right_id = eareu.edit_access_right_id AND ";
 				$q .= "eg.edit_access_right_id = eareg.edit_access_right_id AND ";
 				// password match is done in script, against old plain or new blowfish encypted
-				$q .= "(LOWER(username) = '".strtolower($this->username)."') ";
+				$q .= "(LOWER(username) = '".$this->dbEscapeString(strtolower($this->username))."') ";
 				$res = $this->dbReturn($q);
 				// username is wrong, but we throw for wrong username and wrong password the same error
 				if (!$this->cursor_ext[md5($q)]["num_rows"]) {
diff --git a/www/lib/CoreLibs/Output/Form/Generate.inc b/www/lib/CoreLibs/Output/Form/Generate.inc
index 1b5c7ad5..dda68ed5 100644
--- a/www/lib/CoreLibs/Output/Form/Generate.inc
+++ b/www/lib/CoreLibs/Output/Form/Generate.inc
@@ -270,12 +270,12 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
 		$this->int_pk_name = $this->pk_name;
 		// check if reference_arrays are given and proceed them
 		if (is_array($config_array["reference_arrays"])) {
-			while (list($key, $value) = each($config_array["reference_arrays"])) {
+			foreach ($config_array["reference_arrays"] as $key => $value) {
 				$this->reference_array[$key] = $value;
 			}
 		}
 		if (is_array($config_array["element_list"])) {
-			while (list($key, $value) = each($config_array["element_list"])) {
+			foreach ($config_array["element_list"] as $key => $value) {
 				$this->element_list[$key] = $value;
 			}
 		}
@@ -319,7 +319,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
 		}
 		reset($this->table_array);
 		$string .= "TABLE ARRAY DUMP: ".$this->table_name."
"; - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { $string .= "$key: ".$value["value"]."
"; } return $string; @@ -347,7 +347,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { if ($value[$want_key] && !$key_value) { return $key; } elseif ($value[$want_key] == $key_value && $key_value) { @@ -368,7 +368,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { if ($value[$want_key] && !$key_value) { array_push($key_array, $key); } @@ -474,22 +474,26 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO { // only do if the user is allowed to delete if ($this->group_level_user <= $this->security_level["delete"] && !$this->table_array["protected"]["value"] && !$this->error) { - for ($i = 0; $i < count($element_list); $i ++) { + if (!is_array($element_list)) { + $element_list = array (); + } + for ($i = 0, $i_max = count($element_list); $i < $i_max; $i ++) { // $this->debug('form_error', "Array: ".is_array($this->element_list[$element_list[$i]]["read_data"])." | ".$this->element_list[$element_list[$i]]["delete"]); // if prefix, set it $prfx = ($this->element_list[$element_list[$i]]["prefix"]) ? $this->element_list[$element_list[$i]]["prefix"]."_" : ''; // get the primary key - while (list($el_name, $data) = each($this->element_list[$element_list[$i]]["elements"])) { + foreach ($this->element_list[$element_list[$i]]["elements"] as $el_name => $data) { if ($data["pk_id"]) { $pk_name = $el_name; } } // which key should be deleted $id = $remove_name[$i]; - if (($this->element_list[$element_list[$i]]["delete_name"] || $this->element_list[$element_list[$i]]["delete"]) && !$this->element_list[$element_list[$i]]["enable_name"]) { + if (($this->element_list[$element_list[$i]]["delete_name"] || $this->element_list[$element_list[$i]]["delete"]) && + !$this->element_list[$element_list[$i]]["enable_name"] + ) { // flag var name $flag = $remove_name[$i]."_flag"; - if ($_POST[$flag] == "true") { $q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$id]; $this->dbExec($q); @@ -497,7 +501,10 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->warning = 1; } // post okay true -> delete } elseif (is_array($this->element_list[$element_list[$i]]["read_data"]) && !$this->element_list[$element_list[$i]]["delete"]) { - for ($j = 0; $j < count($_POST[$id]); $j ++) { + if (!is_array($_POST[$id])) { + $_POST[$id] = array (); + } + for ($j = 0, $j_max = count($_POST[$id]); $j < $j_max; $j ++) { // if it is not activated if (!$_POST[$remove_name[$i]][$j]) { $q = "UPDATE ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j]; @@ -511,7 +518,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // $this->debug('form_clean', "ID [$id] [$prfx.$pk_name]"); // $this->debug('form_clean', "ID arr: ".$this->print_ar($_POST[$id])); // $this->debug('form_clean', "PK arr: ".$this->print_ar($_POST[$prfx.$pk_name])); - for ($j = 0; $j < count($_POST[$prfx.$pk_name]); $j ++) { + for ($j = 0, $j_max = count($_POST[$prfx.$pk_name]); $j < $j_max; $j ++) { if (!$_POST[$remove_name[$i]][$j] && $_POST[$prfx.$pk_name][$j]) { $q = "DELETE FROM ".$element_list[$i]." WHERE ".$pk_name." = ".$_POST[$prfx.$pk_name][$j]; // $this->debug('edit_db', "DEL: $q"); @@ -540,13 +547,13 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // lade liste $this->dbExec($this->load_query); - while ($res = $this->db_fetch_array()) { + while ($res = $this->dbFetchArray()) { $pk_ids[] = $res[$this->int_pk_name]; if ($res[$this->int_pk_name] == $this->table_array[$this->int_pk_name]["value"]) { $pk_selected = $res[$this->int_pk_name]; } unset($t_string); - for ($i = 0; $i < count($this->field_array); $i ++) { + for ($i = 0, $i_max = count($this->field_array); $i < $i_max; $i ++) { if ($t_string) { $t_string .= ", "; } @@ -612,7 +619,14 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $show_delete = 1; } } // print save/delete row at all$ - return array('seclevel_okay' => $seclevel_okay, 'save' => $save, 'pk_name' => $pk_name, 'pk_value' => $pk_value, 'show_delete' => $show_delete, 'hide_delete_checkbox' => $hide_delete_checkbox); + return array( + 'seclevel_okay' => $seclevel_okay, + 'save' => $save, + 'pk_name' => $pk_name, + 'pk_value' => $pk_value, + 'show_delete' => $show_delete, + 'hide_delete_checkbox' => $hide_delete_checkbox + ); } // end of function // METHOD: formCreateElement @@ -717,7 +731,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $data['name'] = $element_name; $data['value'][] = ""; $data['output'][] = $this->l->__("Please choose ..."); - while ($res = $this->db_return($query)) { + while ($res = $this->dbReturn($query)) { $data['value'][] = $res[0]; $data['output'][] = $res[1]; if ($this->table_array[$element_name]["value"] == $res[0]) { @@ -743,7 +757,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $data['value'][] = ""; $data['output'][] = $this->l->__("Please choose ..."); // outer query overrules inner - while (list($key, $value) = each($query)) { + foreach ($query as $key => $value) { $data['value'][] = $key; $data['output'][] = $value; if ($this->table_array[$element_name]["value"] == $key) { @@ -757,7 +771,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $query = $this->table_array[$element_name]["query"]; } $data['name'] = $element_name; - while (list($key, $value) = each($query)) { + foreach ($query as $key => $value) { $data['value'][] = $key; $data['output'][] = $value; if ($this->table_array[$element_name]["value"] == $key) { @@ -806,7 +820,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { //if ($value["mandatory"] && $value["error_check"]) // if error value set && somethign input, check if input okay if ($value["error_check"] && $this->table_array[$key]["value"]) { @@ -844,7 +858,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO break; // check unique, check if field in table is not yet exist case "unique": - $q = "SELECT ".$key." FROM ".$this->table_name." WHERE ".$key." = '".$this->db_escape_string($this->table_array[$key]["value"])."'"; + $q = "SELECT ".$key." FROM ".$this->table_name." WHERE ".$key." = '".$this->dbEscapeString($this->table_array[$key]["value"])."'"; if ($this->table_array[$this->int_pk_name]["value"]) { $q .= " AND ".$this->int_pk_name." <> ".$this->table_array[$this->int_pk_name]["value"]; } @@ -928,7 +942,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->reference_array = array (); } reset($this->reference_array); - while (list($key, $value) = each($this->reference_array)) { + foreach ($this->reference_array as $key => $value) { if ($this->reference_array[$key]["mandatory"] && !$this->reference_array[$key]["selected"][0]) { $this->msg .= sprintf($this->l->__("Please select at least one Element from field %s!
"), $this->reference_array[$key]["output_name"]); } @@ -938,7 +952,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO if (is_array($this->element_list)) { // check the mandatory stuff // if mandatory, check that at least on pk exists or if at least the mandatory field is filled - while (list($table_name, $reference_array) = each($this->element_list)) { + foreach ($this->element_list as $table_name => $reference_array) { // set pk/fk id for this foreach ($reference_array['elements'] as $_name => $_data) { if ($_data['pk_id']) { @@ -955,7 +969,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // get max elements $max = 0; foreach ($keys as $key) { - if (count($_POST[$prfx.$key]) > $max) { + if (is_array($_POST[$prfx.$key]) && count($_POST[$prfx.$key]) > $max) { $max = count($_POST[$prfx.$key]); } // $this->debug('edit_error_chk', "KEY: $prfx$key | count: ".count($_POST[$prfx.$key])." | M: $max"); @@ -965,7 +979,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO # check each row for ($i = 0; $i < $max; $i ++) { // either one of the post pks is set, or the mandatory - while (list($el_name, $data_array) = each($reference_array["elements"])) { + foreach ($reference_array["elements"] as $el_name => $data_array) { if ($data_array["mandatory"]) { $mand_name = $data_array["output_name"]; } @@ -999,7 +1013,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO switch ($error_check) { // check unique, check if field in table is not yet exist case "unique": - $q = "SELECT ".$_pk_name." FROM ".$table_name." WHERE ".$el_name." = '".$this->db_escape_string($_POST[$prfx.$el_name][$i])."'"; + $q = "SELECT ".$_pk_name." FROM ".$table_name." WHERE ".$el_name." = '".$this->dbEscapeString($_POST[$prfx.$el_name][$i])."'"; if ($this->table_array[$this->int_pk_name]["value"]) { $q .= " AND ".$this->int_pk_name." <> ".$this->table_array[$this->int_pk_name]["value"]; } @@ -1078,7 +1092,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { unset($this->table_array[$key]["value"]); unset($this->table_array[$key]["input_value"]); // if preset var present preset @@ -1091,7 +1105,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->reference_array = array (); } reset($this->reference_array); - while (list($key, $value) = each($this->reference_array)) { + foreach ($this->reference_array as $key => $value) { unset($this->reference_array[$key]["selected"]); } } @@ -1109,14 +1123,14 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO if ($pk_id) { $this->pk_id = $pk_id; } - $this->table_array = $this->db_read(1); + $this->table_array = $this->dbRead(1); // reset all temp fields if (!is_array($this->table_array)) { $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { unset($this->table_array[$key]["input_value"]); } @@ -1126,10 +1140,10 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->reference_array = array (); } reset($this->reference_array); - while (list($key, $value) = each($this->reference_array)) { + foreach ($this->reference_array as $key => $value) { unset($this->reference_array[$key]["selected"]); $q = "SELECT ".$this->reference_array[$key]["other_table_pk"]." FROM ".$this->reference_array[$key]["table_name"]." WHERE ".$this->int_pk_name."=".$this->table_array[$this->int_pk_name]["value"]; - while ($res = $this->db_return($q)) { + while ($res = $this->dbReturn($q)) { $this->reference_array[$key]["selected"][] = $res[$this->reference_array[$key]["other_table_pk"]]; } } @@ -1151,13 +1165,13 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { // drop_down_db with input + reference table // $this->debug('form', "A: ".$this->table_array[$key]["type"]." --- ".$this->table_array[$key]["input_value"]); if ($this->table_array[$key]["type"] == "drop_down_db_input" && $this->table_array[$key]["input_value"]) { // $this->debug('form', "HERE"); // check if this text name already exists (lowercase compare) - $q = "SELECT ".$this->table_array[$key]["pk_name"]." FROM ".$this->table_array[$key]["table_name"]." WHERE LCASE(".$this->table_array[$key]["input_name"].") = '".$this->db_escape_string(strtolower($this->table_array[$key]["input_value"]))."'"; + $q = "SELECT ".$this->table_array[$key]["pk_name"]." FROM ".$this->table_array[$key]["table_name"]." WHERE LCASE(".$this->table_array[$key]["input_name"].") = '".$this->dbEscapeString(strtolower($this->table_array[$key]["input_value"]))."'"; // if a where was given, add here if ($this->table_array[$key]["where"]) { $q .= " AND ".$this->table_array[$key]["where"]; @@ -1168,7 +1182,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO } else { // if a where was given, set this key also [dangerous!] // postgreSQL compatible insert - $q = "INSERT INTO ".$this->table_array[$key]["table_name"]." (".$this->table_array[$key]["input_name"].") VALUES ('".$this->db_escape_string($this->table_array[$key]["input_value"])."')"; + $q = "INSERT INTO ".$this->table_array[$key]["table_name"]." (".$this->table_array[$key]["input_name"].") VALUES ('".$this->dbEscapeString($this->table_array[$key]["input_value"])."')"; $this->dbExec($q); if ($this->table_array[$key]["where"]) { // make an update on the just inseted data with the where data als update values @@ -1186,7 +1200,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // if drop down & input are different if ($this->table_array[$key]["input_value"] != $this->table_array[$key]["value"]) { // check if "right input" is in DB - $q = "SELECT ".$this->table_array[$key]["input_name"]." FROM ".$this->table_array[$key]["table_name"]." WHERE LCASE(".$this->table_array[$key]["input_name"].") = '".strtolower($this->db_escape_string($this->table_array[$key]["input_value"]))."'"; + $q = "SELECT ".$this->table_array[$key]["input_name"]." FROM ".$this->table_array[$key]["table_name"]." WHERE LCASE(".$this->table_array[$key]["input_name"].") = '".strtolower($this->dbEscapeString($this->table_array[$key]["input_value"]))."'"; // if a where was given, add here if ($this->table_array[$key]["where"]) { $q .= " AND ".$this->table_array[$key]["where"]; @@ -1262,7 +1276,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $q = "DELETE FROM ".$reference_array["table_name"]." WHERE ".$this->int_pk_name."=".$this->table_array[$this->int_pk_name]["value"]; $this->dbExec($q); $q = "INSERT INTO ".$reference_array["table_name"]." (".$reference_array["other_table_pk"].", ".$this->int_pk_name.") VALUES "; - for ($i = 0; $i < count($reference_array["selected"]); $i ++) { + for ($i = 0, $i_max = count($reference_array["selected"]); $i < $i_max; $i ++) { $t_q = "(".$reference_array["selected"][$i].", ".$this->table_array[$this->int_pk_name]["value"].")"; $this->dbExec($q.$t_q); } @@ -1274,7 +1288,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->element_list = array (); } reset($this->element_list); - while (list($table_name, $reference_array) = each($this->element_list)) { + foreach ($this->element_list as $table_name => $reference_array) { // get the number of keys from the elements array $keys = array_keys($reference_array["elements"]); // element prefix name @@ -1282,13 +1296,13 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // get max elements $max = 0; foreach ($keys as $key) { - if (count($_POST[$prfx.$key]) > $max) { + if (is_array($_POST[$prfx.$key]) && count($_POST[$prfx.$key]) > $max) { $max = count($_POST[$prfx.$key]); } } // $this->debug('edit_error', "MAX: $max"); // check if there is a hidden key, update, else insert - while (list($el_name, $data_array) = each($reference_array["elements"])) { + foreach ($reference_array["elements"] as $el_name => $data_array) { // this is only for reference_data part, at least one of the text fields need to be set for writing $blow_write = array (); // $this->debug('edit_error_query', "QUERY: ".$this->print_ar($_POST)); @@ -1364,14 +1378,14 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $q_values[$i] .= $_value; } else { // normal data gets escaped - $q_data[$i] .= $el_name." = '".$this->db_escape_string($_value)."'"; - $q_values[$i] .= "'".$this->db_escape_string($_value)."'"; + $q_data[$i] .= $el_name." = '".$this->dbEscapeString($_value)."'"; + $q_values[$i] .= "'".$this->dbEscapeString($_value)."'"; } } } } // eche table elements // finalize the queries, add FK key reference for inserts and run the query - for ($i = 0; $i < count($type); $i ++) { + for ($i = 0, $i_max = count($type); $i < $i_max; $i ++) { $q = ''; if (!$no_write[$i]) { if ($type[$i] == "update") { @@ -1416,7 +1430,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->element_list = array (); } reset($this->element_list); - while (list($table_name, $data_array) = each($this->element_list)) { + foreach ($this->element_list as $table_name => $data_array) { $q = "DELETE FROM ".$table_name." WHERE ".$this->int_pk_name." = ".$this->table_array[$this->int_pk_name]["value"]; $this->dbExec($q); } @@ -1426,12 +1440,12 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { if ($this->table_array[$key]["type"] == "file") { unlink($this->table_array[$key]["save_dir"].$this->table_array[$key]["value"]); } } - $this->db_delete(); + $this->dbDelete(); $this->warning = 1; $this->msg = $this->l->__("Dataset has been deleted!"); } @@ -1441,21 +1455,25 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // PARAMS: $hidden_array // RETURN: the input fields (html) // DESC : creates HTML hidden input fields out of an hash array - public function formCreateHiddenFields($hidden_array = "") + public function formCreateHiddenFields($hidden_array = array ()) { $hidden = array (); if (!is_array($this->table_array)) { $this->table_array = array (); } reset($this->table_array); - while (list($key, $value) = each($this->table_array)) { + foreach ($this->table_array as $key => $value) { if ($this->table_array[$key]["type"] == "hidden") { - $hidden_array[$key] = $this->table_array[$key]["value"]; + if (array_key_exists($key, $this->table_array)) { + $hidden_array[$key] = $this->table_array[$key]["value"]; + } else { + $hidden_array[$key] = ''; + } } } if (is_array($hidden_array)) { reset($hidden_array); - while (list($key, $value) = each($hidden_array)) { + foreach ($hidden_array as $key => $value) { $hidden[] = array('key' => $key, 'value' => $value); } } @@ -1475,7 +1493,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO } $data['name'] = $this->reference_array[$table_name]["other_table_pk"]; $data['size'] = $this->reference_array[$table_name]["select_size"]; - while ($res = $this->db_return($this->reference_array[$table_name]["query"])) { + while ($res = $this->dbReturn($this->reference_array[$table_name]["query"])) { $data['value'][] = $res[0]; $data['output'][] = $res[1]; $data['selected'][] = ($this->checked($this->reference_array[$table_name]["selected"], $res[0])) ? $res[0] : ''; @@ -1523,7 +1541,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO reset($this->element_list[$table_name]["elements"]); // generic data read in (counts for all rows) // visible list data output - while (list($el_name, $data_array) = each($this->element_list[$table_name]["elements"])) { + foreach ($this->element_list[$table_name]["elements"] as $el_name => $data_array) { $this->debug('CFG', 'El: '.$el_name.' -> '.$this->print_ar($data_array)); // if the element name matches the read array, then set the table as a name prefix $q_select[] = $el_name; // this is for reading the data @@ -1542,7 +1560,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO // only two elements are allowed: pos 0 is key, pso 1 is visible output name if ($data_array['type'] == 'drop_down_db') { $md_q = md5($data_array['query']); - while ($res = $this->db_return($data_array['query'])) { + while ($res = $this->dbReturn($data_array['query'])) { $this->debug('edit', "Q[$md_q] pos: ".$this->cursor_ext[$md_q]["pos"]." | want: ".$data_array["preset"]." | set: ".$data['preset'][$el_name]); // first is default for this element if (!$data['preset'][$el_name] && ($this->cursor_ext[$md_q]["pos"] == $data_array['preset'])) { @@ -1555,7 +1573,19 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO } elseif ($data_array["element_list"]) { $data['element_list'][$el_name] = $data_array["element_list"]; // this is for the checkboxes } - $proto[$el_name] = ($this->error) ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : ''; // this is for the new line + $this->debug('CREATE ELEMENT LIST TABLE', 'Post: '.$el_name.' => '.$_POST[$el_name].' => '.is_array($_POST[$el_name])); + // if error, check new line addition so we don't loose it + if ($this->error) { + if (is_array($_POST[$el_name])) { + // this is for the new line + $proto[$el_name] = $_POST[$el_name][(count($_POST[$el_name]) - 1)]; + } else { + $proto[$el_name] = 0; + } + } else { + $proto[$el_name] = ''; + } + // $proto[$el_name] = $this->error ? $_POST[$el_name][(count($_POST[$el_name]) - 1)] : ''; } // $this->debug('CFG DATA', 'Data: '.$this->print_ar($data)); // $this->debug('CFG PROTO', 'Proto: '.$this->print_ar($proto)); @@ -1610,11 +1640,11 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO if ($q) { $pos = 0; // position in while for overwrite if needed // read out the list and add the selected data if needed - while ($res = $this->db_return($q)) { + while ($res = $this->dbReturn($q)) { $_data = array (); $prfx = $data["prefix"]; // short // go through each res - for ($i = 0; $i < count($q_select); $i ++) { + for ($i = 0, $i_max = count($q_select); $i < $i_max; $i ++) { // query select part, set to the element name $el_name = $q_select[$i]; // $this->debug('edit_error', "[$i] ELNAME: $el_name | POS[$prfx$el_name]: ".$_POST[$prfx.$el_name][$pos]." | RES: ".$res[$el_name]); @@ -1649,12 +1679,12 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO $this->element_list[$table_name]['max_empty'] = 10; } // check if we need to fill fields - $element_count = count($data['content']); - $missing_empty_count = $this->element_list[$table_name]['max_empty'] - count($data['content']); + $element_count = is_array($data['content']) ? count($data['content']) : 0; + $missing_empty_count = $this->element_list[$table_name]['max_empty'] - $element_count; $this->debug('CFG MAX', 'Max empty: '.$this->element_list[$table_name]['max_empty'].', Missing: '.$missing_empty_count.', Has: '.$element_count); // set if we need more open entries or if we do not have any entries yet if (($missing_empty_count < $this->element_list[$table_name]['max_empty']) || $element_count == 0) { - for ($pos = count($data['content']); $pos <= ($this->element_list[$table_name]['max_empty'] + $element_count); $pos ++) { + for ($pos = $element_count , $pos_max = $this->element_list[$table_name]['max_empty'] + $element_count; $pos <= $pos_max; $pos ++) { $_data = array (); // the fields that need to be filled are in data->type array: