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