]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - install/checkDBSettings.php
Release 6.2.2
[Github/sugarcrm.git] / install / checkDBSettings.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM Community Edition is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38
39
40
41
42 function checkDBSettings($silent=false) {
43 installLog("Begin DB Check Process *************");
44     if(function_exists('mysqli_connect')){
45         $_SESSION['mysql_type'] = 'mysqli';
46     }
47     if(function_exists('sqlsrv_connect')){
48         $_SESSION['mssql_type'] = 'sqlsrv';
49     }
50
51
52     global $mod_strings;
53     $errors = array();
54     copyInputsIntoSession();
55     
56         installLog("Checking DB Name is valid.");
57
58         $_SESSION['setup_db_database_name'] = trim($_SESSION['setup_db_database_name']);
59
60         if($_SESSION['setup_db_database_name'] == '' ){
61             $errors['ERR_DB_NAME'] = $mod_strings['ERR_DB_NAME'];
62             installLog("ERROR::  {$errors['ERR_DB_NAME']}");
63         }
64
65         if (!isValidDBName($_SESSION['setup_db_database_name'], $_SESSION['setup_db_type'])) {
66             $errIdx = 'ERR_DB_' . strtoupper($_SESSION['setup_db_type']) . '_DB_NAME_INVALID';
67             $errors[$errIdx] = $mod_strings[$errIdx];
68             installLog("ERROR::  {$errors[$errIdx]}");
69         }
70
71         if($_SESSION['setup_db_type'] != 'oci8') {
72
73             if( trim($_SESSION['setup_db_host_name']) == '' ){
74                 $errors['ERR_DB_HOSTNAME'] = $mod_strings['ERR_DB_HOSTNAME'];
75                 installLog("ERROR::  {$errors['ERR_DB_HOSTNAME']}");
76             }
77         }
78
79         //check to see that password and retype are same, if needed
80         if((isset($_SESSION['dbUSRData'])  && !empty($_SESSION['dbUSRData'])) &&
81         ($_SESSION['dbUSRData']=='create' || $_SESSION['dbUSRData']=='provide'))
82         {
83             if( $_SESSION['setup_db_sugarsales_password'] != $_SESSION['setup_db_sugarsales_password_retype'] ){
84                 $errors['ERR_DBCONF_PASSWORD_MISMATCH'] = $mod_strings['ERR_DBCONF_PASSWORD_MISMATCH'];
85                 installLog("ERROR::  {$errors['ERR_DBCONF_PASSWORD_MISMATCH']}");
86             }
87         }
88
89         // bail if the basic info isn't valid
90         if( count($errors) > 0 ){
91                 installLog("Basic form info is INVALID, exit Process.");
92             return printErrors($errors);
93         }else{
94             installLog("Basic form info is valid, continuing Process.");
95         }
96
97         // test the account that will talk to the db if we're not creating it
98         if( $_SESSION['setup_db_sugarsales_user'] != '' && !$_SESSION['setup_db_create_sugarsales_user'] ){
99             if( $_SESSION['setup_db_type'] == 'mysql' ){
100                 installLog("testing with mysql");
101                 if(isset($_SESSION['mysql_type']) && $_SESSION['mysql_type'] == 'mysqli'){
102                     installLog("MySQLI library detected");
103                 }
104
105                 if(isset($_SESSION['mysql_type'])){
106                     $host_name = getHostPortFromString($_SESSION['setup_db_host_name']);
107                     if(empty($host_name)){
108                         $link = @mysqli_connect( $_SESSION['setup_db_host_name'], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password']);
109                     }else{
110                         $link = @mysqli_connect( $host_name[0], $_SESSION['setup_db_sugarsales_user'], $_SESSION['setup_db_sugarsales_password'], null, $host_name[1]);
111                     }
112                 }else{
113                 $link = @mysql_connect( $_SESSION['setup_db_host_name'],
114                                         $_SESSION['setup_db_sugarsales_user'],
115                                         $_SESSION['setup_db_sugarsales_password'] );
116                 }
117
118                 if( !$link ){
119                     installLog("Could not make Connection using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
120                     if(isset($_SESSION['mysql_type'])){
121                         $errno = mysqli_connect_errno();
122                         $error = mysqli_connect_error();
123                     }else{
124                         $errno = mysql_errno();
125                         $error = mysql_error();
126                     }
127
128                     $errors['ERR_DB_LOGIN_FAILURE'] = $mod_strings['ERR_DB_LOGIN_FAILURE_MYSQL'];
129                     installLog("ERROR::  {$errors['ERR_DB_LOGIN_FAILURE']}");
130                 }
131                 else{
132                     installLog("Connection made using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
133                     if(isset($_SESSION['mysql_type'])){
134                         mysqli_close($link );
135                     }else{
136                         mysql_close($link );
137                     }
138                 }
139             } elseif( $_SESSION['setup_db_type'] == 'mssql' ) {
140                 installLog("testing with mssql");
141                 $connect_host = "";
142                 $_SESSION['setup_db_host_instance'] = trim($_SESSION['setup_db_host_instance']);
143
144                 if (empty($_SESSION['setup_db_host_instance'])){
145                     $connect_host = $_SESSION['setup_db_host_name'];
146                 }else{
147                     $connect_host = $_SESSION['setup_db_host_name']. "\\" . $_SESSION['setup_db_host_instance'];
148                 }
149                 if(isset($_SESSION['mssql_type'])){
150                         $connect_params = array(
151                                                 "UID"=>$_SESSION['setup_db_sugarsales_user'],
152                         "PWD"=>$_SESSION['setup_db_sugarsales_password'],
153                         "MultipleActiveResultSets"=>false,
154                         );
155                         $link = sqlsrv_connect( $connect_host  , $connect_params);
156                                 }
157                 else {
158                 $link = @mssql_connect( $connect_host  ,
159                                         $_SESSION['setup_db_sugarsales_user'],
160                                         $_SESSION['setup_db_sugarsales_password'] );
161                 }
162                 if( !$link ) {
163                     $errors['ERR_DB_LOGIN_FAILURE'] = $mod_strings['ERR_DB_LOGIN_FAILURE_MSSQL'];
164                     installLog("ERROR::  {$errors['ERR_DB_LOGIN_FAILURE']}");
165                 } else {
166                     installLog("Connection made using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_sugarsales_user']}");
167                     if(isset($_SESSION['mssql_type'])){
168                         sqlsrv_close($link );
169                     }
170                     else {
171                         mssql_close($link );
172                     }
173                 }
174                 // Bug 29855 - Check to see if given db name is valid
175 //                if (preg_match("/^[0-9#@]+|[\"\'\*\/\\?\:\\<\>\-\ \&\!\(\)\[\]\{\}\;\,\.\`\~\|\\\\]+/i", $_SESSION['setup_db_database_name']) ) {
176 //                    $errors['ERR_DB_MSSQL_DB_NAME'] = $mod_strings['ERR_DB_MSSQL_DB_NAME_INVALID'];
177 //                    installLog("ERROR::  {$errors['ERR_DB_MSSQL_DB_NAME']}");
178 //                }
179 //                Moved to isValidDBName function in db_utils.php
180
181             } elseif( $_SESSION['setup_db_type'] == 'oci8' ){
182             }
183         }
184
185         // privileged account tests
186         if( $_SESSION['setup_db_admin_user_name'] == '' ){
187             $errors['ERR_DB_PRIV_USER'] = $mod_strings['ERR_DB_PRIV_USER'];
188             installLog("ERROR:: {$errors['ERR_DB_PRIV_USER']}");
189         }
190         else {
191             installLog("Testing priviliged account...");
192             if( $_SESSION['setup_db_type'] == 'mysql' ){
193                 if(isset($_SESSION['mysql_type'])){
194                     $host_name = getHostPortFromString($_SESSION['setup_db_host_name']);
195                     if(empty($host_name)){
196                         $link = @mysqli_connect( $_SESSION['setup_db_host_name'], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password']);
197                     }else{
198                         $link = @mysqli_connect( $host_name[0], $_SESSION['setup_db_admin_user_name'], $_SESSION['setup_db_admin_password'], null, $host_name[1]);                    
199                     } 
200                 }else{
201                 $link = @mysql_connect( $_SESSION['setup_db_host_name'],
202                                         $_SESSION['setup_db_admin_user_name'],
203                                         $_SESSION['setup_db_admin_password'] );
204
205                 }
206                 if( $link ){
207                     installLog("Connection made for Privileged admin account using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_admin_user_name']}");
208                     // database admin credentials are valid--can continue check on stuff
209                     if(isset($_SESSION['mysql_type'])){
210                         $db_selected = @mysqli_select_db($link, $_SESSION['setup_db_database_name']);
211                     }else{
212                         $db_selected = @mysql_select_db($_SESSION['setup_db_database_name'], $link);
213                     }
214                     if($silent==false && $db_selected && $_SESSION['setup_db_create_database'] && (!isset($_SESSION['setup_db_drop_tables']) || !$_SESSION['setup_db_drop_tables'])){
215                         $errStr = $mod_strings['ERR_DB_EXISTS_PROCEED'];
216                         $errors['ERR_DB_EXISTS_PROCEED'] = $errStr;
217                         installLog("ERROR:: {$errors['ERR_DB_EXISTS_PROCEED']}");
218                     }
219                     else if( !$db_selected && !$_SESSION['setup_db_create_database'] ){
220                         $errors['ERR_DB_EXISTS_NOT'] = $mod_strings['ERR_DB_EXISTS_NOT'];
221                         installLog("ERROR:: {$errors['ERR_DB_EXISTS_NOT']}");
222                     }
223
224                     // test for upgrade and inform user about the upgrade wizard
225                      if( $db_selected ){
226                         installLog("DB Selected, will reuse {$_SESSION['setup_db_database_name']}");
227                         if(isset($_SESSION['mysql_type'])){
228                             $config_query   = "SHOW TABLES LIKE 'config'";
229                             $config_result  = mysqli_query($link , $config_query);
230                             $config_table_exists    = (mysqli_num_rows( $config_result ) == 1);
231                             mysqli_free_result( $config_result );
232                             include('sugar_version.php');
233                             if( !$_SESSION['setup_db_drop_tables'] && $config_table_exists ){
234                                 $query = "SELECT COUNT(*) FROM config WHERE category='info' AND name='sugar_version' AND VALUE LIKE '$sugar_db_version'";
235                                 $result = mysqli_query( $link , $query );
236                                 $row = mysqli_fetch_row( $result );
237                                 if($row[0] != 1  && $silent==false) {
238                                     $errors['ERR_DB_EXISTS_WITH_CONFIG'] = $mod_strings['ERR_DB_EXISTS_WITH_CONFIG'];
239                                     installLog("ERROR:: {$errors['ERR_DB_EXISTS_WITH_CONFIG']}");
240                                 }
241                                 mysqli_free_result($result);
242                             }
243                         }else{
244                             $config_query   = "SHOW TABLES LIKE 'config'";
245                             $config_result  = mysql_query( $config_query, $link );
246                             $config_table_exists    = (mysql_num_rows( $config_result ) == 1);
247                             mysql_free_result( $config_result );
248                             include('sugar_version.php');
249                             if( !$_SESSION['setup_db_drop_tables'] && $config_table_exists ){
250                                 $query = "SELECT COUNT(*) FROM config WHERE category='info' AND name='sugar_version' AND VALUE LIKE '$sugar_db_version'";
251                                 $result = mysql_query( $query, $link );
252                                 $row = mysql_fetch_row( $result );
253                                 if($row[0] != 1  && $silent==false) {
254                                     $errors['ERR_DB_EXISTS_WITH_CONFIG'] = $mod_strings['ERR_DB_EXISTS_WITH_CONFIG'];
255                                     installLog("ERROR:: {$errors['ERR_DB_EXISTS_WITH_CONFIG']}");
256                                 }
257                                 mysql_free_result($result);
258                             }
259                         }
260
261                     }else{
262                       installLog("DB not selected, will create {$_SESSION['setup_db_database_name']}");
263                      }
264
265
266                     // check for existing SugarCRM database user if create flag is set,
267                     //user name has been given, and database has been selected (reusing db, not creating new one)
268                     if($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_user'] != '' && $db_selected){
269                         if(isset($_SESSION['mysql_type'])){
270                             $mysqli_db_selected = mysqli_select_db($link, 'mysql');
271                             $user = $_SESSION['setup_db_sugarsales_user'];
272                             $query = "select count(*) from user where User ='$user'";
273                             $result = mysqli_query($link, $query);
274                             if(!$result){
275                                 $errno = mysqli_connect_errno();
276                                 $error = mysqli_connect_error();
277                                 $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'].$errno. ": {$error}).";
278                                 installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
279                             }else{
280                                 $row = mysqli_fetch_row($result);
281                                 if($row[0] == 1){
282                                     $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
283                                     installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
284                                 }
285                                 mysqli_free_result($result);
286                             }
287                         }else{
288                             $mysql_db_selected = mysql_select_db('mysql', $link);
289                             $user = $_SESSION['setup_db_sugarsales_user'];
290                             $query = "select count(*) from user where User ='$user'";
291                             $result = mysql_query($query, $link);
292                             if(!$result){
293                                 $errno = mysql_errno();
294                                 $error = mysql_error();
295                                 $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'].$errno. ": {$error}).";
296                                 installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
297                             }else{
298                                 $row = mysql_fetch_row($result);
299                                 if($row[0] == 1){
300                                     $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
301                                     installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
302                                     //do not throw errors, reuse existing user
303                                     //$_SESSION['setup_db_create_sugarsales_user'] = 0;
304                                 }
305                                 mysql_free_result($result);
306                             }
307                         }
308
309                     }
310
311                     // check mysql minimum version requirement
312                     $db_version = getMysqlVersion($link);
313                     if(version_compare($db_version, '4.1.2') < 0) {
314                         $errors['ERR_DB_MYSQL_VERSION1'] = $mod_strings['ERR_DB_MYSQL_VERSION1'].$db_version.$mod_strings['ERR_DB_MYSQL_VERSION2'];
315                         installLog("ERROR:: {$errors['ERR_DB_MYSQL_VERSION1']}");
316                     }else{
317                      installLog("Passed DB Version check, version is {$db_version}");
318                     }
319
320                     if(isset($_SESSION['mysql_type'])){
321                         mysqli_close($link);
322                     }else{
323                         mysql_close($link);
324                     }
325                 }
326                 else { // dblink was bad
327                     if(isset($_SESSION['mysql_type'])){
328                         $errno = mysqli_connect_errno();
329                         $error = mysqli_connect_error();
330                     }else{
331                         $errno = mysql_errno();
332                         $error = mysql_error();
333                     }
334                     $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'].$errno. ": {$error}).";
335                     installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
336                 }
337
338             }else if( $_SESSION['setup_db_type'] == 'mssql' ){
339                 installLog("Testing priviliged account...");
340                 $connect_host = "";
341                 $_SESSION['setup_db_host_instance'] = trim($_SESSION['setup_db_host_instance']);
342
343                 if (empty($_SESSION['setup_db_host_instance'])){
344                     $connect_host = $_SESSION['setup_db_host_name'];
345                 }else{
346                     $connect_host = $_SESSION['setup_db_host_name']. "\\" . $_SESSION['setup_db_host_instance'];
347                 }
348                 if(isset($_SESSION['mssql_type'])){
349                     $connect_params = array(
350                                                 "UID"=>$_SESSION['setup_db_sugarsales_user'],
351                         "PWD"=>$_SESSION['setup_db_sugarsales_password'],
352                         "MultipleActiveResultSets"=>false,
353                         );
354                         $link = sqlsrv_connect( $connect_host  , $connect_params);
355                 }
356                 else {
357                     $link = @mssql_connect( $connect_host  ,
358                                         $_SESSION['setup_db_admin_user_name'],
359                                         $_SESSION['setup_db_admin_password'] );
360                 }
361                                  if( $link ){
362                     installLog("Connection made for Privileged admin account using  host: {$_SESSION['setup_db_host_name']}, usr: {$_SESSION['setup_db_admin_user_name']}");
363                     // database admin credentials are valid--can continue check on stuff
364                     $tbl_exists_qry = "SELECT name FROM master..sysdatabases WHERE name = N'{$_SESSION['setup_db_database_name']}'";
365                     if(isset($_SESSION['mssql_type']))
366                         $res = sqlsrv_query($link,$tbl_exists_qry);
367                     else
368                         $res = mssql_query($tbl_exists_qry);
369                     $db_exists    = false;
370                     if ( isset($_SESSION['mssql_type']) && sqlsrv_fetch( $res) == 1){$db_exists = true;
371                     installLog("DB Exists and selected, will reuse {$_SESSION['setup_db_database_name']}");
372                     }elseif ( !isset($_SESSION['mssql_type']) && mssql_num_rows( $res) == 1){$db_exists = true;
373                     installLog("DB Exists and selected, will reuse {$_SESSION['setup_db_database_name']}");
374                     }else{
375                         installLog("No DB Selected, will create {$_SESSION['setup_db_database_name']}");
376                     }
377                     if($silent==false &&  $db_exists && $_SESSION['setup_db_create_database'] && (!isset($_SESSION['setup_db_drop_tables']) || !$_SESSION['setup_db_drop_tables'])){
378                         $errStr = $mod_strings['ERR_DB_EXISTS_PROCEED'];
379                         $errors['ERR_DB_EXISTS_PROCEED'] = $errStr;
380                         installLog("ERROR:: {$errors['ERR_DB_EXISTS_PROCEED']}");
381                     }
382                     else if( !$db_exists && !$_SESSION['setup_db_create_database'] ){
383                         $errors['ERR_DB_EXISTS_NOT'] = $mod_strings['ERR_DB_EXISTS_NOT'];
384                         installLog("ERROR:: {$errors['ERR_DB_EXISTS_NOT']}");
385                     }
386
387                     // check for existing SugarCRM database user if create flag is set,
388                     //user name has been given, and database has been selected (reusing db, not creating new one)
389                     if($_SESSION['setup_db_create_sugarsales_user'] && $_SESSION['setup_db_sugarsales_user'] != ''){
390                         if(isset($_SESSION['mssql_type'])) {
391                             $mssql_db_selected = (bool) sqlsrv_query($link,'USE master');
392                             $user = $_SESSION['setup_db_sugarsales_user'];
393                             $query = "select count(*) from sys.sql_logins where name ='$user'";
394                             $result = sqlsrv_query($link, $query);
395                             if(!$result){
396                                 $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'];
397                                 installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
398                             }else{
399                                 $row = sqlsrv_fetch_array($result);
400                                 if($row[0] == 1){
401                                     $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
402                                     installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
403                                 }
404                                 sqlsrv_free_stmt($result);
405                             }
406                         }
407                         else {
408                             $mssql_db_selected = mssql_select_db('master', $link);
409                             $user = $_SESSION['setup_db_sugarsales_user'];
410                             $query = "select count(*) from sys.sql_logins where name ='$user'";
411                             $result = mssql_query($query, $link);
412                             if(!$result){
413                                 $errors['ERR_DB_ADMIN'] = $mod_strings['ERR_DB_ADMIN'];
414                                 installLog("ERROR:: {$errors['ERR_DB_ADMIN']}");
415                             }else{
416                                 $row = mssql_fetch_row($result);
417                                 if($row[0] == 1){
418                                     $errors['ERR_DB_USER_EXISTS'] = $mod_strings['ERR_DB_USER_EXISTS'];
419                                     installLog("ERROR:: {$errors['ERR_DB_USER_EXISTS']}");
420                                 }
421                                 mssql_free_result($result);
422                             }
423                         }
424                     }
425
426                     if(isset($_SESSION['mssql_type']))
427                         sqlsrv_close($link);
428                     else
429                         mssql_close($link);
430
431                 }
432                 else { // dblink was bad
433                     $errors['ERR_DB_ADMIN_MSSQL'] = $mod_strings['ERR_DB_ADMIN_MSSQL'].$connect_host;
434                     installLog("ERROR:: {$errors['ERR_DB_ADMIN_MSSQL']}");
435                 }
436
437             }else if( $_SESSION['setup_db_type'] == 'oci8' ){
438             }
439         } // end of privileged user tests
440         if($silent){
441             return $errors;
442         }else{
443             printErrors($errors);
444         }
445         installLog("End DB Check Process *************");
446 }
447
448 function printErrors($errors ){
449
450 global $mod_strings;
451     if(count($errors) == 0){
452         echo 'dbCheckPassed';
453         installLog("SUCCESS:: no errors detected!");
454     }else if((count($errors) == 1 && isset($errors["ERR_DB_EXISTS_PROCEED"]))  ||
455     (count($errors) == 2 && isset($errors["ERR_DB_EXISTS_PROCEED"]) && isset($errors["ERR_DB_EXISTS_WITH_CONFIG"])) ){
456         ///throw alert asking to overwwrite db
457         echo 'preexeest';
458         installLog("WARNING:: no errors detected, but DB tables will be dropped!, issuing warning to user");
459     }else{
460         installLog("FATAL:: errors have been detected!  User will not be allowed to continue.  Errors are as follow:");
461          //print out errors
462         $validationErr  = "<p><b>{$mod_strings['ERR_DBCONF_VALIDATION']}</b></p>";
463         $validationErr .= '<ul>';
464
465         foreach($errors as $key =>$erMsg){
466             if($key != "ERR_DB_EXISTS_PROCEED" && $key != "ERR_DB_EXISTS_WITH_CONFIG"){
467                 if($_SESSION['dbUSRData'] == 'same' && $key == 'ERR_DB_ADMIN'){
468                     installLog(".. {$erMsg}");
469                     break;
470                 }
471                 $validationErr .= '<li class="error">' . $erMsg . '</li>';
472                 installLog(".. {$erMsg}");
473             }
474         }
475         $validationErr .= '</ul>';
476         $validationErr .= '</div>';
477
478          echo $validationErr;
479     }
480
481 }
482
483
484 function copyInputsIntoSession(){
485             if(isset($_REQUEST['setup_db_type'])){$_SESSION['setup_db_type']                        = $_REQUEST['setup_db_type'];}
486             if(isset($_REQUEST['setup_db_admin_user_name'])){$_SESSION['setup_db_admin_user_name']  = $_REQUEST['setup_db_admin_user_name'];}
487             if(isset($_REQUEST['setup_db_admin_password'])){$_SESSION['setup_db_admin_password']    = $_REQUEST['setup_db_admin_password'];}
488             if(isset($_REQUEST['setup_db_database_name'])){$_SESSION['setup_db_database_name']      = $_REQUEST['setup_db_database_name'];}
489             if(isset($_REQUEST['setup_db_host_name'])){$_SESSION['setup_db_host_name']              = $_REQUEST['setup_db_host_name'];}
490
491             if(isset($_REQUEST['setup_db_host_instance'])){
492                 $_SESSION['setup_db_host_instance']             = $_REQUEST['setup_db_host_instance'];
493             }
494
495
496             // on a silent install, copy values from $_SESSION into $_REQUEST
497             if (isset($_REQUEST['goto']) && $_REQUEST['goto'] == 'SilentInstall') {
498                 if (isset($_SESSION['dbUSRData']) && !empty($_SESSION['dbUSRData']))
499                     $_REQUEST['dbUSRData'] = $_SESSION['dbUSRData'];
500                 else $_REQUEST['dbUSRData'] = 'same';
501
502                 if (isset($_SESSION['setup_db_sugarsales_user']) && !empty($_SESSION['setup_db_sugarsales_user']))
503                     $_REQUEST['setup_db_sugarsales_user'] = $_SESSION['setup_db_sugarsales_user'];
504                 else $_REQUEST['dbUSRData'] = 'same';
505
506                 $_REQUEST['setup_db_sugarsales_password'] = $_SESSION['setup_db_sugarsales_password'];
507                 $_REQUEST['setup_db_sugarsales_password_retype'] = $_SESSION['setup_db_sugarsales_password'];
508             }
509
510             //make sure we are creating or using provided user for app db connections
511             $_SESSION['setup_db_create_sugarsales_user']  = true;//get_boolean_from_request('setup_db_create_sugarsales_user');
512             if( $_SESSION['setup_db_type'] == 'oci8' ){
513              //if we are in Oracle Mode, make the admin user/password same as connecting user/password
514               $_SESSION['setup_db_sugarsales_user']             = $_SESSION['setup_db_admin_user_name'];
515               $_SESSION['setup_db_sugarsales_password']         = $_SESSION['setup_db_admin_password'];
516               $_SESSION['setup_db_sugarsales_password_retype']  = $_SESSION['setup_db_sugarsales_password'];
517               $_SESSION['setup_db_create_sugarsales_user']      = false;
518               $_SESSION['setup_db_create_database']             = false;
519
520             }//elseif(isset($_SESSION['install_type'])  && !empty($_SESSION['install_type'])  && strtolower($_SESSION['install_type'])=='typical'){
521             else{
522
523
524                 //retrieve the value from dropdown in order to know what settings the user
525                 //wants to use for the sugar db user.
526
527                 //use provided db admin by default
528                 $_SESSION['dbUSRData'] = 'same';
529
530                 if(isset($_REQUEST['dbUSRData'])  && !empty($_REQUEST['dbUSRData'])){
531                     $_SESSION['dbUSRData'] = $_REQUEST['dbUSRData'];
532                 }
533
534
535                   if($_SESSION['dbUSRData'] == 'auto'){
536                     //create user automatically
537                       $_SESSION['setup_db_create_sugarsales_user']          = true;
538                       $_SESSION['setup_db_sugarsales_user']                 = "sugar".create_db_user_creds(5);
539                       $_SESSION['setup_db_sugarsales_password']             = create_db_user_creds(10);
540                       $_SESSION['setup_db_sugarsales_password_retype']      = $_SESSION['setup_db_sugarsales_password'];
541                   }elseif($_SESSION['dbUSRData'] == 'provide'){
542                     //use provided user info
543                       $_SESSION['setup_db_create_sugarsales_user']          = false;
544                       $_SESSION['setup_db_sugarsales_user']                 = $_REQUEST['setup_db_sugarsales_user'];
545                       $_SESSION['setup_db_sugarsales_password']             = $_REQUEST['setup_db_sugarsales_password'];
546                       $_SESSION['setup_db_sugarsales_password_retype']      = $_REQUEST['setup_db_sugarsales_password_retype'];
547                   }elseif($_SESSION['dbUSRData'] == 'create'){
548                     // create user with provided info
549                       $_SESSION['setup_db_create_sugarsales_user']        = true;
550                       $_SESSION['setup_db_sugarsales_user']               = $_REQUEST['setup_db_sugarsales_user'];
551                       $_SESSION['setup_db_sugarsales_password']           = $_REQUEST['setup_db_sugarsales_password'];
552                       $_SESSION['setup_db_sugarsales_password_retype']    = $_REQUEST['setup_db_sugarsales_password_retype'];
553                   }else{
554                    //Use the same login as provided admin user
555                       $_SESSION['setup_db_create_sugarsales_user']      = false;
556                       $_SESSION['setup_db_sugarsales_user']             = $_SESSION['setup_db_admin_user_name'];
557                       $_SESSION['setup_db_sugarsales_password']         = $_SESSION['setup_db_admin_password'];
558                       $_SESSION['setup_db_sugarsales_retype']           = $_SESSION['setup_db_admin_password'];
559                   }
560             }
561
562             if(!isset($_SESSION['demoData']) || empty($_SESSION['demoData'])){
563                 $_SESSION['demoData'] = 'no';
564             }
565             if(isset($_REQUEST['demoData'])){$_SESSION['demoData'] = $_REQUEST['demoData'] ;}
566             if (isset($_REQUEST['goto']) && $_REQUEST['goto'] == 'SilentInstall' && isset($SESSION['setup_db_drop_tables'])) {
567                 //set up for Oracle Silent Installer
568                 $_REQUEST['setup_db_drop_tables'] = $_SESSION['setup_db_drop_tables'] ;
569             }
570             if (isset($_REQUEST['setup_db_drop_tables'])
571                 || ((isset($_REQUEST['goto']) && $_REQUEST['goto'] == 'SilentInstall' && isset($SESSION['setup_db_drop_tables'])))
572             ){
573                 $_SESSION['setup_db_drop_tables']       = true;
574                 $_SESSION['setup_db_create_database']   = false;
575
576             }else{
577                 $_SESSION['setup_db_drop_tables']       = false;
578                 $_SESSION['setup_db_create_database']   = true;
579             }
580 }
581
582 ////    END PAGEOUTPUT
583 ///////////////////////////////////////////////////////////////////////////////
584 ?>