static function validate_input($databases) { if ($validate = validate::username($_REQUEST["admin_user"]) and $validate != "") { setup::error_add("{t}Admin Username{/t} - {t}validation failed{/t} " . $validate, 30); } if ($_REQUEST["db_host"] == "") { setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database Hostname / IP{/t}"), 31); } if ($_REQUEST["db_user"] == "") { setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database User{/t}"), 32); } if ($_REQUEST["db_name"] == "") { setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Database Name{/t}"), 33); } if ($_REQUEST["admin_pw"] == "") { setup::error_add(sprintf("{t}missing field{/t}: %s", "{t}Admin Password{/t}"), 34); } if ($_REQUEST["admin_pw"] != "" and strlen($_REQUEST["admin_pw"]) < 5) { setup::error_add("{t}Admin Password{/t}: {t}Password must be not null, min 5 characters.{/t}", "34b"); } if (!@sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"], $_REQUEST["db_name"])) { if (!sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"])) { setup::error_add("{t}Connection to database failed.{/t}\n" . sql_error(), 35); } setup::errors_show(); if (!sgsml_parser::create_database($_REQUEST["db_name"])) { setup::error_add("{t}Creating database failed.{/t}\n" . sql_error(), 36); } } if (!sql_connect($_REQUEST["db_host"], $_REQUEST["db_user"], $_REQUEST["db_pw"], $_REQUEST["db_name"]) or empty(sys::$db)) { setup::error_add("{t}Connection to database failed.{/t}\n" . sql_error(), 37); setup::errors_show(); } if (!($version = sgsml_parser::sql_version())) { setup::error_add(sprintf("{t}Could not determine database-version.{/t}"), 38); } $database_min = (int) substr(str_replace(".", "", $databases[SETUP_DB_TYPE][1]), 0, 3); if ($version < $database_min) { setup::error_add(sprintf("{t}Wrong database-version (%s). Please use at least %s !{/t}", $version, $databases[SETUP_DB_TYPE]), "20" . SETUP_DB_TYPE); } if (SETUP_DB_TYPE == "pgsql") { if (!sql_query("SELECT ''::tsvector;")) { setup::error_add("{t}Please install 'tsearch2' for the PostgreSQL database.{/t}\n(Run <postgresql>/share/contrib/tsearch2.sql)\n" . sql_error(), 21); } if (!sql_query(file_get_contents("modules/core/pgsql.sql"))) { setup::error_add("pgsql.sql: " . sql_error(), 50); } } setup::errors_show(); return $version; }