equal
deleted
inserted
replaced
19 |
19 |
20 if ( isset($_POST['_cont']) ) |
20 if ( isset($_POST['_cont']) ) |
21 { |
21 { |
22 $allow_go = true; |
22 $allow_go = true; |
23 // Do we have everything? If so, continue with installation. |
23 // Do we have everything? If so, continue with installation. |
24 foreach ( array('db_host', 'db_name', 'db_user', 'db_pass') as $field ) |
24 foreach ( array('db_host', 'db_port', 'db_name', 'db_user', 'db_pass') as $field ) |
25 { |
25 { |
26 if ( empty($_POST[$field]) ) |
26 if ( empty($_POST[$field]) ) |
27 { |
27 { |
28 $allow_go = false; |
28 $allow_go = false; |
29 } |
29 } |
71 'mode' => 'error', |
71 'mode' => 'error', |
72 'error' => 'Exception in JSON decoder' |
72 'error' => 'Exception in JSON decoder' |
73 ))); |
73 ))); |
74 } |
74 } |
75 |
75 |
|
76 if ( preg_match('/^:/', $info['db_host']) && !@file_exists(substr($info['db_host'], 1)) ) |
|
77 { |
|
78 $return['host_good'] = false; |
|
79 echo enano_json_encode($return); |
|
80 exit(); |
|
81 } |
|
82 |
|
83 if ( $info['db_host'] == 'localhost' && !empty($info['db_port']) && $info['db_port'] != 3306 ) |
|
84 $info['db_host'] = '127.0.0.1'; |
|
85 |
|
86 $dbhost = ( preg_match('/^:/', $info['db_host']) ) ? $info['db_host'] : "{$info['db_host']}:{$info['db_port']}"; |
|
87 |
76 // Try to connect as the normal user |
88 // Try to connect as the normal user |
77 $test = @mysql_connect($info['db_host'], $info['db_user'], $info['db_pass']); |
89 $test = @mysql_connect($dbhost, $info['db_user'], $info['db_pass']); |
78 if ( !$test ) |
90 if ( !$test ) |
79 { |
91 { |
80 $return['creating_user'] = true; |
92 $return['creating_user'] = true; |
81 $return['last_error'] = mysql_error(); |
93 $return['last_error'] = mysql_error(); |
82 if ( strstr( $return['last_error'], 'Lost connection' ) || strstr( $return['last_error'], 'Unknown MySQL server host' ) ) |
94 if ( strstr( $return['last_error'], 'Lost connection' ) || strstr( $return['last_error'], 'Unknown MySQL server host' ) ) |
87 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
99 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
88 { |
100 { |
89 // Log in with root rights and if that works, tell 'em we'll reset the password or create |
101 // Log in with root rights and if that works, tell 'em we'll reset the password or create |
90 // the account if it doesn't exist already. This is done with GRANT ALL PRIVILEGES ON enano_db.* |
102 // the account if it doesn't exist already. This is done with GRANT ALL PRIVILEGES ON enano_db.* |
91 // etc etc, a little hackish but known to work with MySQL >= 4.1. |
103 // etc etc, a little hackish but known to work with MySQL >= 4.1. |
92 $test_root = @mysql_connect($info['db_host'], $info['db_root_user'], $info['db_root_pass']); |
104 $test_root = @mysql_connect($dbhost, $info['db_root_user'], $info['db_root_pass']); |
93 if ( $test_root ) |
105 if ( $test_root ) |
94 { |
106 { |
95 // We logged in with root rights, assume that we have appropriate permissions. |
107 // We logged in with root rights, assume that we have appropriate permissions. |
96 // If not, well, the installation will fail. Tough on the user, but creating |
108 // If not, well, the installation will fail. Tough on the user, but creating |
97 // test databases/users is too risky. |
109 // test databases/users is too risky. |
150 // We don't have permission to use the database or it doesn't exist. |
162 // We don't have permission to use the database or it doesn't exist. |
151 // See if we have a root login to work with, if not then fail |
163 // See if we have a root login to work with, if not then fail |
152 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
164 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
153 { |
165 { |
154 // Log in with root rights and if that works, tell 'em we'll create the database. |
166 // Log in with root rights and if that works, tell 'em we'll create the database. |
155 $test_root = @mysql_connect($info['db_host'], $info['db_root_user'], $info['db_root_pass']); |
167 $test_root = @mysql_connect($dbhost, $info['db_root_user'], $info['db_root_pass']); |
156 if ( $test_root ) |
168 if ( $test_root ) |
157 { |
169 { |
158 // We logged in with root rights, assume that we have appropriate permissions. |
170 // We logged in with root rights, assume that we have appropriate permissions. |
159 // If not, well, the installation will fail. Tough on the user, but creating |
171 // If not, well, the installation will fail. Tough on the user, but creating |
160 // test databases/users is too risky. |
172 // test databases/users is too risky. |
238 } |
250 } |
239 var frm = document.forms.database_info; |
251 var frm = document.forms.database_info; |
240 // List of fields |
252 // List of fields |
241 var fields = { |
253 var fields = { |
242 db_host: frm.db_host, |
254 db_host: frm.db_host, |
|
255 db_port: frm.db_port, |
243 db_name: frm.db_name, |
256 db_name: frm.db_name, |
244 db_user: frm.db_user, |
257 db_user: frm.db_user, |
245 db_pass: frm.db_pass, |
258 db_pass: frm.db_pass, |
246 table_prefix: frm.table_prefix, |
259 table_prefix: frm.table_prefix, |
247 db_root_user: frm.db_root_user, |
260 db_root_user: frm.db_root_user, |
249 }; |
262 }; |
250 var passed = true; |
263 var passed = true; |
251 // Main validation |
264 // Main validation |
252 if ( field == fields.db_host || !field ) |
265 if ( field == fields.db_host || !field ) |
253 { |
266 { |
254 var matches = fields.db_host.value.match(/^([a-z0-9_-]+)((\.([a-z0-9_-]+))*)?$/); |
267 var matches = fields.db_host.value.match(/^(([a-z0-9_-]+)((\.([a-z0-9_-]+))*)|:[A-z0-9_:\.\/-]+)$/); |
255 document.getElementById('s_db_host').src = ( matches ) ? img_neu : img_bad; |
268 document.getElementById('s_db_host').src = ( matches ) ? img_neu : img_bad; |
|
269 if ( !matches ) |
|
270 passed = false; |
|
271 } |
|
272 if ( field == fields.db_port || !field ) |
|
273 { |
|
274 var matches = fields.db_port.value.match(/^[0-9]+$/); |
|
275 document.getElementById('s_db_port').src = ( matches ) ? img_neu : img_bad; |
256 if ( !matches ) |
276 if ( !matches ) |
257 passed = false; |
277 passed = false; |
258 } |
278 } |
259 if ( field == fields.db_name || !field ) |
279 if ( field == fields.db_name || !field ) |
260 { |
280 { |
300 install_set_ajax_loading(); |
320 install_set_ajax_loading(); |
301 |
321 |
302 var frm = document.forms.database_info; |
322 var frm = document.forms.database_info; |
303 var connection_info = 'info=' + ajaxEscape(toJSONString({ |
323 var connection_info = 'info=' + ajaxEscape(toJSONString({ |
304 db_host: frm.db_host.value, |
324 db_host: frm.db_host.value, |
|
325 db_port: frm.db_port.value, |
305 db_name: frm.db_name.value, |
326 db_name: frm.db_name.value, |
306 db_user: frm.db_user.value, |
327 db_user: frm.db_user.value, |
307 db_pass: frm.db_pass.value, |
328 db_pass: frm.db_pass.value, |
308 db_root_user: frm.db_root_user.value, |
329 db_root_user: frm.db_root_user.value, |
309 db_root_pass: frm.db_root_pass.value |
330 db_root_pass: frm.db_root_pass.value |
400 <img id="s_db_host" alt="Good/bad icon" src="../images/checkbad.png" /> |
421 <img id="s_db_host" alt="Good/bad icon" src="../images/checkbad.png" /> |
401 </td> |
422 </td> |
402 </tr> |
423 </tr> |
403 <tr> |
424 <tr> |
404 <td> |
425 <td> |
|
426 <b><?php echo $lang->get('dbmysql_field_port_title'); ?></b> |
|
427 <br /><?php echo $lang->get('dbmysql_field_port_body'); ?> |
|
428 <br /><span style="color: #993300" id="e_db_port"></span> |
|
429 </td> |
|
430 <td> |
|
431 <input onkeyup="verify(this);" tabindex="2" name="db_port" size="5" type="text" value="3306" /> |
|
432 </td> |
|
433 <td> |
|
434 <img id="s_db_port" alt="Good/bad icon" src="../images/checkbad.png" /> |
|
435 </td> |
|
436 </tr> |
|
437 <tr> |
|
438 <td> |
405 <b><?php echo $lang->get('dbmysql_field_dbname_title'); ?></b><br /> |
439 <b><?php echo $lang->get('dbmysql_field_dbname_title'); ?></b><br /> |
406 <?php echo $lang->get('dbmysql_field_dbname_body'); ?><br /> |
440 <?php echo $lang->get('dbmysql_field_dbname_body'); ?><br /> |
407 <span style="color: #993300" id="e_db_name"></span> |
441 <span style="color: #993300" id="e_db_name"></span> |
408 </td> |
442 </td> |
409 <td> |
443 <td> |
410 <input onkeyup="verify(this);" tabindex="2" name="db_name" size="30" type="text" /> |
444 <input onkeyup="verify(this);" tabindex="3" name="db_name" size="30" type="text" /> |
411 </td> |
445 </td> |
412 <td> |
446 <td> |
413 <img id="s_db_name" alt="Good/bad icon" src="../images/checkbad.png" /> |
447 <img id="s_db_name" alt="Good/bad icon" src="../images/checkbad.png" /> |
414 </td> |
448 </td> |
415 </tr> |
449 </tr> |
418 <b><?php echo $lang->get('dbmysql_field_dbauth_title'); ?></b><br /> |
452 <b><?php echo $lang->get('dbmysql_field_dbauth_title'); ?></b><br /> |
419 <?php echo $lang->get('dbmysql_field_dbauth_body'); ?><br /> |
453 <?php echo $lang->get('dbmysql_field_dbauth_body'); ?><br /> |
420 <span style="color: #993300" id="e_db_auth"></span> |
454 <span style="color: #993300" id="e_db_auth"></span> |
421 </td> |
455 </td> |
422 <td> |
456 <td> |
423 <input onkeyup="verify(this);" tabindex="3" name="db_user" size="30" type="text" /><br /> |
457 <input onkeyup="verify(this);" tabindex="4" name="db_user" size="30" type="text" /><br /> |
424 <br /> |
458 <br /> |
425 <input name="db_pass" tabindex="4" size="30" type="password" /> |
459 <input name="db_pass" tabindex="5" size="30" type="password" /> |
426 </td> |
460 </td> |
427 <td> |
461 <td> |
428 <img id="s_db_auth" alt="Good/bad icon" src="../images/checkbad.png" /> |
462 <img id="s_db_auth" alt="Good/bad icon" src="../images/checkbad.png" /> |
429 </td> |
463 </td> |
430 </tr> |
464 </tr> |
437 <td> |
471 <td> |
438 <b><?php echo $lang->get('dbmysql_field_tableprefix_title'); ?></b><br /> |
472 <b><?php echo $lang->get('dbmysql_field_tableprefix_title'); ?></b><br /> |
439 <?php echo $lang->get('dbmysql_field_tableprefix_body'); ?> |
473 <?php echo $lang->get('dbmysql_field_tableprefix_body'); ?> |
440 </td> |
474 </td> |
441 <td> |
475 <td> |
442 <input onkeyup="verify(this);" tabindex="5" name="table_prefix" size="30" type="text" /> |
476 <input onkeyup="verify(this);" tabindex="6" name="table_prefix" size="30" type="text" /> |
443 </td> |
477 </td> |
444 <td> |
478 <td> |
445 <img id="s_table_prefix" alt="Good/bad icon" src="../images/check.png" /> |
479 <img id="s_table_prefix" alt="Good/bad icon" src="../images/check.png" /> |
446 </td> |
480 </td> |
447 </tr> |
481 </tr> |
450 <b><?php echo $lang->get('dbmysql_field_rootauth_title'); ?></b><br /> |
484 <b><?php echo $lang->get('dbmysql_field_rootauth_title'); ?></b><br /> |
451 <?php echo $lang->get('dbmysql_field_rootauth_body'); ?><br /> |
485 <?php echo $lang->get('dbmysql_field_rootauth_body'); ?><br /> |
452 <span style="color: #993300" id="e_db_root"></span> |
486 <span style="color: #993300" id="e_db_root"></span> |
453 </td> |
487 </td> |
454 <td> |
488 <td> |
455 <input onkeyup="verify(this);" tabindex="6" name="db_root_user" size="30" type="text" /><br /> |
489 <input onkeyup="verify(this);" tabindex="7" name="db_root_user" size="30" type="text" /><br /> |
456 <br /> |
490 <br /> |
457 <input onkeyup="verify(this);" tabindex="7" name="db_root_pass" size="30" type="password" /> |
491 <input onkeyup="verify(this);" tabindex="8" name="db_root_pass" size="30" type="password" /> |
458 </td> |
492 </td> |
459 <td> |
493 <td> |
460 <img id="s_db_root" alt="Good/bad icon" src="../images/check.png" /> |
494 <img id="s_db_root" alt="Good/bad icon" src="../images/check.png" /> |
461 </td> |
495 </td> |
462 </tr> |
496 </tr> |
475 <td> |
509 <td> |
476 <b><?php echo $lang->get('dbmysql_field_droptables_title'); ?></b><br /> |
510 <b><?php echo $lang->get('dbmysql_field_droptables_title'); ?></b><br /> |
477 <?php echo $lang->get('dbmysql_field_droptables_body'); ?> |
511 <?php echo $lang->get('dbmysql_field_droptables_body'); ?> |
478 </td> |
512 </td> |
479 <td colspan="2"> |
513 <td colspan="2"> |
480 <input type="checkbox" tabindex="8" name="drop_tables" id="dtcheck" /> <label for="dtcheck"><?php echo $lang->get('dbmysql_field_droptables_lbl'); ?></label> |
514 <input type="checkbox" tabindex="9" name="drop_tables" id="dtcheck" /> <label for="dtcheck"><?php echo $lang->get('dbmysql_field_droptables_lbl'); ?></label> |
481 </td> |
515 </td> |
482 </tr> |
516 </tr> |
483 <tr> |
517 <tr> |
484 <td colspan="3" style="text-align: center"> |
518 <td colspan="3" style="text-align: center"> |
485 <input type="button" tabindex="9" value="<?php echo $lang->get('dbmysql_btn_testconnection'); ?>" onclick="ajaxTestConnection();" /> |
519 <input type="button" tabindex="10" value="<?php echo $lang->get('dbmysql_btn_testconnection'); ?>" onclick="ajaxTestConnection();" /> |
486 <div id="verify_error"></div> |
520 <div id="verify_error"></div> |
487 </td> |
521 </td> |
488 </tr> |
522 </tr> |
489 |
523 |
490 </table> |
524 </table> |
491 |
525 |
492 <table border="0"> |
526 <table border="0"> |
493 <tr> |
527 <tr> |
494 <td> |
528 <td> |
495 <input type="submit" tabindex="10" value="<?php echo $lang->get('meta_btn_continue'); ?>" onclick="return verify();" name="_cont" /> |
529 <input type="submit" tabindex="11" value="<?php echo $lang->get('meta_btn_continue'); ?>" onclick="return verify();" name="_cont" /> |
496 </td> |
530 </td> |
497 <td> |
531 <td> |
498 <p> |
532 <p> |
499 <span style="font-weight: bold;"><?php echo $lang->get('meta_lbl_before_continue'); ?></span><br /> |
533 <span style="font-weight: bold;"><?php echo $lang->get('meta_lbl_before_continue'); ?></span><br /> |
500 • <?php echo $lang->get('database_objective_test'); ?><br /> |
534 • <?php echo $lang->get('database_objective_test'); ?><br /> |