12 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied |
12 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied |
13 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
13 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. |
14 */ |
14 */ |
15 |
15 |
16 if ( !defined('IN_ENANO_INSTALL') ) |
16 if ( !defined('IN_ENANO_INSTALL') ) |
17 die(); |
17 die(); |
18 |
18 |
19 if ( isset($_POST['_cont']) ) |
19 if ( isset($_POST['_cont']) ) |
20 { |
20 { |
21 $allow_go = true; |
21 $allow_go = true; |
22 // Do we have everything? If so, continue with installation. |
22 // Do we have everything? If so, continue with installation. |
23 foreach ( array('db_host', 'db_name', 'db_user', 'db_pass', 'db_port') as $field ) |
23 foreach ( array('db_host', 'db_name', 'db_user', 'db_pass', 'db_port') as $field ) |
24 { |
24 { |
25 if ( empty($_POST[$field]) ) |
25 if ( empty($_POST[$field]) ) |
26 { |
26 { |
27 $allow_go = false; |
27 $allow_go = false; |
28 } |
28 } |
29 } |
29 } |
30 if ( $allow_go ) |
30 if ( $allow_go ) |
31 { |
31 { |
32 require( ENANO_ROOT . '/install/includes/stages/database_post.php' ); |
32 require( ENANO_ROOT . '/install/includes/stages/database_post.php' ); |
33 return true; |
33 return true; |
34 } |
34 } |
35 } |
35 } |
36 |
36 |
37 if ( isset($_POST['ajax_test']) ) |
37 if ( isset($_POST['ajax_test']) ) |
38 { |
38 { |
39 // Test the database connection |
39 // Test the database connection |
40 $return = array( |
40 $return = array( |
41 'can_install' => false, |
41 'can_install' => false, |
42 'host_good' => true, |
42 'host_good' => true, |
43 'creating_user' => false, |
43 'creating_user' => false, |
44 'db_exist' => false, |
44 'db_exist' => false, |
45 'creating_db' => false, |
45 'creating_db' => false, |
46 'creating_db_grant' => false, |
46 'creating_db_grant' => false, |
47 'root_fail' => false, |
47 'root_fail' => false, |
48 'version' => array( |
48 'version' => array( |
49 'version' => 'unknown', |
49 'version' => 'unknown', |
50 'good' => 'indeterminate' |
50 'good' => 'indeterminate' |
51 ), |
51 ), |
52 'last_error' => '' |
52 'last_error' => '' |
53 ); |
53 ); |
54 |
54 |
55 if ( !isset($_POST['info']) ) |
55 if ( !isset($_POST['info']) ) |
56 die(); |
56 die(); |
57 |
57 |
58 $info = $_POST['info']; |
58 $info = $_POST['info']; |
59 |
59 |
60 // From here on out will be JSON responses |
60 // From here on out will be JSON responses |
61 header('Content-type: application/json'); |
61 header('Content-type: application/json'); |
62 |
62 |
63 try |
63 try |
64 { |
64 { |
65 $info = @enano_json_decode($info); |
65 $info = @enano_json_decode($info); |
66 } |
66 } |
67 catch ( Zend_Json_Exception $e ) |
67 catch ( Zend_Json_Exception $e ) |
68 { |
68 { |
69 die(enano_json_encode(array( |
69 die(enano_json_encode(array( |
70 'mode' => 'error', |
70 'mode' => 'error', |
71 'error' => 'Exception in JSON decoder' |
71 'error' => 'Exception in JSON decoder' |
72 ))); |
72 ))); |
73 } |
73 } |
74 |
74 |
75 if ( !is_int($info['db_port']) ) |
75 if ( !is_int($info['db_port']) ) |
76 { |
76 { |
77 $return['host_good'] = false; |
77 $return['host_good'] = false; |
78 echo enano_json_encode($return); |
78 echo enano_json_encode($return); |
79 exit; |
79 exit; |
80 } |
80 } |
81 |
81 |
82 $port = $info['db_port'] ? $info['db_port'] : 5432; |
82 $port = $info['db_port'] ? $info['db_port'] : 5432; |
83 |
83 |
84 // Try to connect as the normal user |
84 // Try to connect as the normal user |
85 // generate connection string |
85 // generate connection string |
86 $conn_string = "dbname = '" . addslashes($info['db_name']) . "' port = '$port' host = '" . addslashes($info['db_host']) . "' " . |
86 $conn_string = "dbname = '" . addslashes($info['db_name']) . "' port = '$port' host = '" . addslashes($info['db_host']) . "' " . |
87 "user= '" . addslashes($info['db_user']) . "' password = '" . addslashes($info['db_pass']) . "'"; |
87 "user= '" . addslashes($info['db_user']) . "' password = '" . addslashes($info['db_pass']) . "'"; |
88 $test = @pg_connect($conn_string); |
88 $test = @pg_connect($conn_string); |
89 if ( !$test ) |
89 if ( !$test ) |
90 { |
90 { |
91 // Connection as normal user failed. PgSQL doesn't give us an error string so |
91 // Connection as normal user failed. PgSQL doesn't give us an error string so |
92 // just try to connect as root. If even that fails, exit with an error |
92 // just try to connect as root. If even that fails, exit with an error |
93 $return['creating_user'] = true; |
93 $return['creating_user'] = true; |
94 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
94 if ( !empty($info['db_root_user']) && !empty($info['db_root_pass']) ) |
95 { |
95 { |
96 $conn_string_root = "dbname = '" . addslashes($info['db_name']) . "' port = '$port' host = '" . addslashes($info['db_host']) . "' " . |
96 $conn_string_root = "dbname = '" . addslashes($info['db_name']) . "' port = '$port' host = '" . addslashes($info['db_host']) . "' " . |
97 "user= '" . addslashes($info['db_root_user']) . "' password = '" . addslashes($info['db_root_pass']) . "'"; |
97 "user= '" . addslashes($info['db_root_user']) . "' password = '" . addslashes($info['db_root_pass']) . "'"; |
98 // Attempt connection as root |
98 // Attempt connection as root |
99 $test_root = @pg_connect($conn_string_root); |
99 $test_root = @pg_connect($conn_string_root); |
100 if ( !$test_root ) |
100 if ( !$test_root ) |
101 { |
101 { |
102 $return['root_fail'] = true; |
102 $return['root_fail'] = true; |
103 } |
103 } |
104 else |
104 else |
105 { |
105 { |
106 $return['can_install'] = true; |
106 $return['can_install'] = true; |
107 } |
107 } |
108 } |
108 } |
109 } |
109 } |
110 else |
110 else |
111 { |
111 { |
112 $return['can_install'] = true; |
112 $return['can_install'] = true; |
113 } |
113 } |
114 |
114 |
115 $did_version_check = false; |
115 $did_version_check = false; |
116 |
116 |
117 if ( isset($test) && @is_resource($test) ) |
117 if ( isset($test) && @is_resource($test) ) |
118 { |
118 { |
119 $server_info = @pg_version($test); |
119 $server_info = @pg_version($test); |
120 if ( isset($server_info['server']) ) |
120 if ( isset($server_info['server']) ) |
121 { |
121 { |
122 $did_version_check = true; |
122 $did_version_check = true; |
123 $return['version'] = array( |
123 $return['version'] = array( |
124 'version' => $server_info['server'], |
124 'version' => $server_info['server'], |
125 'good' => ( version_compare($server_info['server'], '8.2.5', '>=') ) |
125 'good' => ( version_compare($server_info['server'], '8.2.5', '>=') ) |
126 ); |
126 ); |
127 } |
127 } |
128 @pg_close($test); |
128 @pg_close($test); |
129 } |
129 } |
130 |
130 |
131 if ( isset($test_root) && @is_resource($test_root) ) |
131 if ( isset($test_root) && @is_resource($test_root) ) |
132 { |
132 { |
133 $server_info = @pg_version($test_root); |
133 $server_info = @pg_version($test_root); |
134 if ( isset($server_info['server']) ) |
134 if ( isset($server_info['server']) ) |
135 { |
135 { |
136 $did_version_check = true; |
136 $did_version_check = true; |
137 $return['version'] = array( |
137 $return['version'] = array( |
138 'version' => $server_info['server'], |
138 'version' => $server_info['server'], |
139 'good' => ( version_compare($server_info['server'], '8.2.5', '>=') ) |
139 'good' => ( version_compare($server_info['server'], '8.2.5', '>=') ) |
140 ); |
140 ); |
141 } |
141 } |
142 @pg_close($test_root); |
142 @pg_close($test_root); |
143 } |
143 } |
144 |
144 |
145 if ( !$did_version_check ) |
145 if ( !$did_version_check ) |
146 { |
146 { |
147 $return['version'] = array( |
147 $return['version'] = array( |
148 'version' => 'indeterminate', |
148 'version' => 'indeterminate', |
149 'good' => false |
149 'good' => false |
150 ); |
150 ); |
151 } |
151 } |
152 else |
152 else |
153 { |
153 { |
154 if ( !$return['version']['good'] ) |
154 if ( !$return['version']['good'] ) |
155 { |
155 { |
156 $return['can_install'] = false; |
156 $return['can_install'] = false; |
157 } |
157 } |
158 } |
158 } |
159 |
159 |
160 echo enano_json_encode($return); |
160 echo enano_json_encode($return); |
161 |
161 |
162 exit(); |
162 exit(); |
163 } |
163 } |
164 |
164 |
165 $ui->add_header('<script type="text/javascript" src="includes/js/formutils.js"></script>'); |
165 $ui->add_header('<script type="text/javascript" src="includes/js/formutils.js"></script>'); |
166 $ui->show_header(); |
166 $ui->show_header(); |
167 |
167 |
168 ?> |
168 ?> |
169 |
169 |
170 <script type="text/javascript"> |
170 <script type="text/javascript"> |
171 |
171 |
172 var img_bad = '../images/checkbad.png'; |
172 var img_bad = '../images/checkbad.png'; |
173 var img_good = '../images/check.png'; |
173 var img_good = '../images/check.png'; |
174 var img_neu = '../images/checkunk.png'; |
174 var img_neu = '../images/checkunk.png'; |
175 |
175 |
176 var tested = false; |
176 var tested = false; |
177 |
177 |
178 function verify(field) |
178 function verify(field) |
179 { |
179 { |
180 if ( tested && !field ) |
180 if ( tested && !field ) |
181 return true; |
181 return true; |
182 tested = false; |
182 tested = false; |
183 if ( document.getElementById('verify_error').className != '' ) |
183 if ( document.getElementById('verify_error').className != '' ) |
184 { |
184 { |
185 document.getElementById('verify_error').className = ''; |
185 document.getElementById('verify_error').className = ''; |
186 document.getElementById('verify_error').innerHTML = ''; |
186 document.getElementById('verify_error').innerHTML = ''; |
187 } |
187 } |
188 var frm = document.forms.database_info; |
188 var frm = document.forms.database_info; |
189 // List of fields |
189 // List of fields |
190 var fields = { |
190 var fields = { |
191 db_host: frm.db_host, |
191 db_host: frm.db_host, |
192 db_port: frm.db_port, |
192 db_port: frm.db_port, |
193 db_name: frm.db_name, |
193 db_name: frm.db_name, |
194 db_user: frm.db_user, |
194 db_user: frm.db_user, |
195 db_pass: frm.db_pass, |
195 db_pass: frm.db_pass, |
196 table_prefix: frm.table_prefix, |
196 table_prefix: frm.table_prefix, |
197 db_root_user: frm.db_root_user, |
197 db_root_user: frm.db_root_user, |
198 db_root_pass: frm.db_root_pass |
198 db_root_pass: frm.db_root_pass |
199 }; |
199 }; |
200 var passed = true; |
200 var passed = true; |
201 // Main validation |
201 // Main validation |
202 if ( field == fields.db_host || !field ) |
202 if ( field == fields.db_host || !field ) |
203 { |
203 { |
204 var matches = fields.db_host.value.match(/^([a-z0-9_-]+)((\.([a-z0-9_-]+))*)?$/); |
204 var matches = fields.db_host.value.match(/^([a-z0-9_-]+)((\.([a-z0-9_-]+))*)?$/); |
205 document.getElementById('s_db_host').src = ( matches ) ? img_neu : img_bad; |
205 document.getElementById('s_db_host').src = ( matches ) ? img_neu : img_bad; |
206 if ( !matches ) |
206 if ( !matches ) |
207 passed = false; |
207 passed = false; |
208 } |
208 } |
209 if ( field == fields.db_port || !field ) |
209 if ( field == fields.db_port || !field ) |
210 { |
210 { |
211 var matches = fields.db_port.value.match(/^[0-9]+$/); |
211 var matches = fields.db_port.value.match(/^[0-9]+$/); |
212 document.getElementById('s_db_port').src = ( matches ) ? img_neu : img_bad; |
212 document.getElementById('s_db_port').src = ( matches ) ? img_neu : img_bad; |
213 if ( !matches ) |
213 if ( !matches ) |
214 passed = false; |
214 passed = false; |
215 } |
215 } |
216 if ( field == fields.db_name || !field ) |
216 if ( field == fields.db_name || !field ) |
217 { |
217 { |
218 var matches = fields.db_name.value.match(/^[A-z0-9_-]+$/); |
218 var matches = fields.db_name.value.match(/^[A-z0-9_-]+$/); |
219 document.getElementById('s_db_name').src = ( matches ) ? img_neu : img_bad; |
219 document.getElementById('s_db_name').src = ( matches ) ? img_neu : img_bad; |
220 if ( !matches ) |
220 if ( !matches ) |
221 passed = false; |
221 passed = false; |
222 } |
222 } |
223 if ( field == fields.db_user || field == fields.db_pass || !field ) |
223 if ( field == fields.db_user || field == fields.db_pass || !field ) |
224 { |
224 { |
225 var matches = fields.db_user.value.match(/^[A-z0-9_-]+$/); |
225 var matches = fields.db_user.value.match(/^[A-z0-9_-]+$/); |
226 document.getElementById('s_db_auth').src = ( matches ) ? img_neu : img_bad; |
226 document.getElementById('s_db_auth').src = ( matches ) ? img_neu : img_bad; |
227 if ( !matches ) |
227 if ( !matches ) |
228 passed = false; |
228 passed = false; |
229 } |
229 } |
230 if ( field == fields.table_prefix || !field ) |
230 if ( field == fields.table_prefix || !field ) |
231 { |
231 { |
232 var matches = fields.table_prefix.value.match(/^[a-z0-9_]*$/); |
232 var matches = fields.table_prefix.value.match(/^[a-z0-9_]*$/); |
233 document.getElementById('s_table_prefix').src = ( matches ) ? img_good : img_bad; |
233 document.getElementById('s_table_prefix').src = ( matches ) ? img_good : img_bad; |
234 if ( !matches ) |
234 if ( !matches ) |
235 passed = false; |
235 passed = false; |
236 } |
236 } |
237 if ( field == fields.db_root_user || field == fields.db_root_pass || !field ) |
237 if ( field == fields.db_root_user || field == fields.db_root_pass || !field ) |
238 { |
238 { |
239 var matches = ( ( fields.db_root_user.value.match(/^[A-z0-9_-]+$/) && fields.db_root_pass.value.match(/^.+$/) ) || fields.db_root_user.value == '' ); |
239 var matches = ( ( fields.db_root_user.value.match(/^[A-z0-9_-]+$/) && fields.db_root_pass.value.match(/^.+$/) ) || fields.db_root_user.value == '' ); |
240 document.getElementById('s_db_root').src = ( matches ) ? img_neu : img_bad; |
240 document.getElementById('s_db_root').src = ( matches ) ? img_neu : img_bad; |
241 if ( !matches ) |
241 if ( !matches ) |
242 passed = false; |
242 passed = false; |
243 } |
243 } |
244 return passed; |
244 return passed; |
245 } |
245 } |
246 |
246 |
247 function ajaxTestConnection() |
247 function ajaxTestConnection() |
248 { |
248 { |
249 if ( !verify() ) |
249 if ( !verify() ) |
250 { |
250 { |
251 document.body.scrollTop = 0; |
251 document.body.scrollTop = 0; |
252 $('enano-body').effect('shake', {}, 750); |
252 $('enano-body').effect('shake', {}, 750); |
253 document.getElementById('verify_error').className = 'error-box-mini'; |
253 document.getElementById('verify_error').className = 'error-box-mini'; |
254 document.getElementById('verify_error').innerHTML = $lang.get('meta_msg_err_verification'); |
254 document.getElementById('verify_error').innerHTML = $lang.get('meta_msg_err_verification'); |
255 return false; |
255 return false; |
256 } |
256 } |
257 install_set_ajax_loading(); |
257 install_set_ajax_loading(); |
258 |
258 |
259 var frm = document.forms.database_info; |
259 var frm = document.forms.database_info; |
260 var connection_info = 'info=' + ajaxEscape(toJSONString({ |
260 var connection_info = 'info=' + ajaxEscape(toJSONString({ |
261 db_host: frm.db_host.value, |
261 db_host: frm.db_host.value, |
262 db_port: parseInt(frm.db_port.value), |
262 db_port: parseInt(frm.db_port.value), |
263 db_name: frm.db_name.value, |
263 db_name: frm.db_name.value, |
264 db_user: frm.db_user.value, |
264 db_user: frm.db_user.value, |
265 db_pass: frm.db_pass.value, |
265 db_pass: frm.db_pass.value, |
266 db_root_user: frm.db_root_user.value, |
266 db_root_user: frm.db_root_user.value, |
267 db_root_pass: frm.db_root_pass.value |
267 db_root_pass: frm.db_root_pass.value |
268 })); |
268 })); |
269 |
269 |
270 ajaxPost(scriptPath + '/install/install.php?stage=database', connection_info + '&driver=postgresql&ajax_test=on&language=' + enano_lang_code[ENANO_LANG_ID], function(ajax) |
270 ajaxPost(scriptPath + '/install/install.php?stage=database', connection_info + '&driver=postgresql&ajax_test=on&language=' + enano_lang_code[ENANO_LANG_ID], function(ajax) |
271 { |
271 { |
272 if ( ajax.readyState == 4 && ajax.status == 200 ) |
272 if ( ajax.readyState == 4 && ajax.status == 200 ) |
273 { |
273 { |
274 setTimeout('install_unset_ajax_loading();', 750); |
274 setTimeout('install_unset_ajax_loading();', 750); |
275 // Process response |
275 // Process response |
276 var response = String(ajax.responseText + ''); |
276 var response = String(ajax.responseText + ''); |
277 if ( response.substr(0, 1) != '{' ) |
277 if ( response.substr(0, 1) != '{' ) |
278 { |
278 { |
279 alert('Received an invalid JSON response from the server.'); |
279 alert('Received an invalid JSON response from the server.'); |
280 return false; |
280 return false; |
281 } |
281 } |
282 response = parseJSON(response); |
282 response = parseJSON(response); |
283 document.getElementById('e_db_host').innerHTML = ''; |
283 document.getElementById('e_db_host').innerHTML = ''; |
284 document.getElementById('e_db_name').innerHTML = ''; |
284 document.getElementById('e_db_name').innerHTML = ''; |
285 document.getElementById('e_db_auth').innerHTML = ''; |
285 document.getElementById('e_db_auth').innerHTML = ''; |
286 document.getElementById('e_db_root').innerHTML = ''; |
286 document.getElementById('e_db_root').innerHTML = ''; |
287 if ( response.can_install ) |
287 if ( response.can_install ) |
288 { |
288 { |
289 tested = true; |
289 tested = true; |
290 var statuses = ['s_db_host', 's_db_name', 's_db_auth', 's_table_prefix', 's_db_root', 's_pgsql_version']; |
290 var statuses = ['s_db_host', 's_db_name', 's_db_auth', 's_table_prefix', 's_db_root', 's_pgsql_version']; |
291 for ( var i in statuses ) |
291 for ( var i in statuses ) |
292 { |
292 { |
293 var img = document.getElementById(statuses[i]); |
293 var img = document.getElementById(statuses[i]); |
294 if ( img ) |
294 if ( img ) |
295 img.src = img_good; |
295 img.src = img_good; |
296 } |
296 } |
297 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_info_version_good'); |
297 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_info_version_good'); |
298 document.getElementById('verify_error').className = 'info-box-mini'; |
298 document.getElementById('verify_error').className = 'info-box-mini'; |
299 document.getElementById('verify_error').innerHTML = $lang.get('dbpgsql_msg_test_success'); |
299 document.getElementById('verify_error').innerHTML = $lang.get('dbpgsql_msg_test_success'); |
300 if ( response.creating_db ) |
300 if ( response.creating_db ) |
301 { |
301 { |
302 document.getElementById('e_db_name').innerHTML = $lang.get('dbpgsql_msg_warn_creating_db'); |
302 document.getElementById('e_db_name').innerHTML = $lang.get('dbpgsql_msg_warn_creating_db'); |
303 } |
303 } |
304 if ( response.creating_user ) |
304 if ( response.creating_user ) |
305 { |
305 { |
306 document.getElementById('e_db_auth').innerHTML = $lang.get('dbpgsql_msg_warn_creating_user'); |
306 document.getElementById('e_db_auth').innerHTML = $lang.get('dbpgsql_msg_warn_creating_user'); |
307 } |
307 } |
308 } |
308 } |
309 else |
309 else |
310 { |
310 { |
311 // Oh dear, oh dear, oh dear, oh dear, oh dear... |
311 // Oh dear, oh dear, oh dear, oh dear, oh dear... |
312 if ( response.creating_db ) |
312 if ( response.creating_db ) |
313 { |
313 { |
314 document.getElementById('e_db_name').innerHTML = $lang.get('dbpgsql_msg_err_dbexist', { pg_error: response.last_error }); |
314 document.getElementById('e_db_name').innerHTML = $lang.get('dbpgsql_msg_err_dbexist', { pg_error: response.last_error }); |
315 document.getElementById('s_db_name').src = img_bad; |
315 document.getElementById('s_db_name').src = img_bad; |
316 } |
316 } |
317 if ( response.creating_user ) |
317 if ( response.creating_user ) |
318 { |
318 { |
319 document.getElementById('e_db_auth').innerHTML = $lang.get('dbpgsql_msg_err_auth', { pg_error: response.last_error }); |
319 document.getElementById('e_db_auth').innerHTML = $lang.get('dbpgsql_msg_err_auth', { pg_error: response.last_error }); |
320 document.getElementById('s_db_auth').src = img_bad; |
320 document.getElementById('s_db_auth').src = img_bad; |
321 } |
321 } |
322 if ( !response.host_good ) |
322 if ( !response.host_good ) |
323 { |
323 { |
324 document.getElementById('e_db_host').innerHTML = $lang.get('dbpgsql_msg_err_connect', { db_host: frm.db_host.value, pg_error: response.last_error }); |
324 document.getElementById('e_db_host').innerHTML = $lang.get('dbpgsql_msg_err_connect', { db_host: frm.db_host.value, pg_error: response.last_error }); |
325 document.getElementById('s_db_host').src = img_bad; |
325 document.getElementById('s_db_host').src = img_bad; |
326 } |
326 } |
327 if ( !response.version.good ) |
327 if ( !response.version.good ) |
328 { |
328 { |
329 if ( response.version.version == 'indeterminate' ) |
329 if ( response.version.version == 'indeterminate' ) |
330 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_warn_pg_version'); |
330 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_warn_pg_version'); |
331 else |
331 else |
332 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_err_version', { pg_version: response.version.version }); |
332 document.getElementById('e_pgsql_version').innerHTML = $lang.get('dbpgsql_msg_err_version', { pg_version: response.version.version }); |
333 document.getElementById('s_pgsql_version').src = img_bad; |
333 document.getElementById('s_pgsql_version').src = img_bad; |
334 } |
334 } |
335 } |
335 } |
336 } |
336 } |
337 }); |
337 }); |
338 } |
338 } |
339 |
339 |
340 </script> |
340 </script> |
341 |
341 |
342 <form action="install.php?stage=database" method="post" name="database_info"> |
342 <form action="install.php?stage=database" method="post" name="database_info"> |
343 <input type="hidden" name="language" value="<?php echo $lang_id; ?>" /> |
343 <input type="hidden" name="language" value="<?php echo $lang_id; ?>" /> |
344 <input type="hidden" name="driver" value="postgresql" /> |
344 <input type="hidden" name="driver" value="postgresql" /> |
345 |
345 |
346 <table border="0" cellspacing="0" cellpadding="10" width="100%"> |
346 <table border="0" cellspacing="0" cellpadding="10" width="100%"> |
347 <tr> |
347 <tr> |
348 <td colspan="3" style="text-align: center"> |
348 <td colspan="3" style="text-align: center"> |
349 <h3><?php echo $lang->get('dbpgsql_table_title'); ?></h3> |
349 <h3><?php echo $lang->get('dbpgsql_table_title'); ?></h3> |
350 </td> |
350 </td> |
351 </tr> |
351 </tr> |
352 <tr> |
352 <tr> |
353 <td> |
353 <td> |
354 <b><?php echo $lang->get('dbpgsql_field_hostname_title'); ?></b> |
354 <b><?php echo $lang->get('dbpgsql_field_hostname_title'); ?></b> |
355 <br /><?php echo $lang->get('dbpgsql_field_hostname_body'); ?> |
355 <br /><?php echo $lang->get('dbpgsql_field_hostname_body'); ?> |
356 <br /><span style="color: #993300" id="e_db_host"></span> |
356 <br /><span style="color: #993300" id="e_db_host"></span> |
357 </td> |
357 </td> |
358 <td> |
358 <td> |
359 <input onkeyup="verify(this);" tabindex="1" name="db_host" size="30" type="text" /> |
359 <input onkeyup="verify(this);" tabindex="1" name="db_host" size="30" type="text" /> |
360 </td> |
360 </td> |
361 <td> |
361 <td> |
362 <img id="s_db_host" alt="Good/bad icon" src="../images/checkbad.png" /> |
362 <img id="s_db_host" alt="Good/bad icon" src="../images/checkbad.png" /> |
363 </td> |
363 </td> |
364 </tr> |
364 </tr> |
365 <tr> |
365 <tr> |
366 <td> |
366 <td> |
367 <b><?php echo $lang->get('dbpgsql_field_port_title'); ?></b> |
367 <b><?php echo $lang->get('dbpgsql_field_port_title'); ?></b> |
368 <br /><?php echo $lang->get('dbpgsql_field_port_body'); ?> |
368 <br /><?php echo $lang->get('dbpgsql_field_port_body'); ?> |
369 <br /><span style="color: #993300" id="e_db_port"></span> |
369 <br /><span style="color: #993300" id="e_db_port"></span> |
370 </td> |
370 </td> |
371 <td> |
371 <td> |
372 <input onkeyup="verify(this);" tabindex="2" name="db_port" size="5" type="text" value="5432" /> |
372 <input onkeyup="verify(this);" tabindex="2" name="db_port" size="5" type="text" value="5432" /> |
373 </td> |
373 </td> |
374 <td> |
374 <td> |
375 <img id="s_db_port" alt="Good/bad icon" src="../images/checkbad.png" /> |
375 <img id="s_db_port" alt="Good/bad icon" src="../images/checkbad.png" /> |
376 </td> |
376 </td> |
377 </tr> |
377 </tr> |
378 <tr> |
378 <tr> |
379 <td> |
379 <td> |
380 <b><?php echo $lang->get('dbpgsql_field_dbname_title'); ?></b><br /> |
380 <b><?php echo $lang->get('dbpgsql_field_dbname_title'); ?></b><br /> |
381 <?php echo $lang->get('dbpgsql_field_dbname_body'); ?><br /> |
381 <?php echo $lang->get('dbpgsql_field_dbname_body'); ?><br /> |
382 <span style="color: #993300" id="e_db_name"></span> |
382 <span style="color: #993300" id="e_db_name"></span> |
383 </td> |
383 </td> |
384 <td> |
384 <td> |
385 <input onkeyup="verify(this);" tabindex="2" name="db_name" size="30" type="text" /> |
385 <input onkeyup="verify(this);" tabindex="2" name="db_name" size="30" type="text" /> |
386 </td> |
386 </td> |
387 <td> |
387 <td> |
388 <img id="s_db_name" alt="Good/bad icon" src="../images/checkbad.png" /> |
388 <img id="s_db_name" alt="Good/bad icon" src="../images/checkbad.png" /> |
389 </td> |
389 </td> |
390 </tr> |
390 </tr> |
391 <tr> |
391 <tr> |
392 <td> |
392 <td> |
393 <b><?php echo $lang->get('dbpgsql_field_dbauth_title'); ?></b><br /> |
393 <b><?php echo $lang->get('dbpgsql_field_dbauth_title'); ?></b><br /> |
394 <?php echo $lang->get('dbpgsql_field_dbauth_body'); ?><br /> |
394 <?php echo $lang->get('dbpgsql_field_dbauth_body'); ?><br /> |
395 <span style="color: #993300" id="e_db_auth"></span> |
395 <span style="color: #993300" id="e_db_auth"></span> |
396 </td> |
396 </td> |
397 <td> |
397 <td> |
398 <input onkeyup="verify(this);" tabindex="3" name="db_user" size="30" type="text" /><br /> |
398 <input onkeyup="verify(this);" tabindex="3" name="db_user" size="30" type="text" /><br /> |
399 <br /> |
399 <br /> |
400 <input name="db_pass" size="30" tabindex="4" type="password" /> |
400 <input name="db_pass" size="30" tabindex="4" type="password" /> |
401 </td> |
401 </td> |
402 <td> |
402 <td> |
403 <img id="s_db_auth" alt="Good/bad icon" src="../images/checkbad.png" /> |
403 <img id="s_db_auth" alt="Good/bad icon" src="../images/checkbad.png" /> |
404 </td> |
404 </td> |
405 </tr> |
405 </tr> |
406 <tr> |
406 <tr> |
407 <td colspan="3" style="text-align: center"> |
407 <td colspan="3" style="text-align: center"> |
408 <h3><?php echo $lang->get('database_heading_optionalinfo'); ?></h3> |
408 <h3><?php echo $lang->get('database_heading_optionalinfo'); ?></h3> |
409 </td> |
409 </td> |
410 </tr> |
410 </tr> |
411 <tr> |
411 <tr> |
412 <td> |
412 <td> |
413 <b><?php echo $lang->get('dbpgsql_field_tableprefix_title'); ?></b><br /> |
413 <b><?php echo $lang->get('dbpgsql_field_tableprefix_title'); ?></b><br /> |
414 <?php echo $lang->get('dbpgsql_field_tableprefix_body'); ?> |
414 <?php echo $lang->get('dbpgsql_field_tableprefix_body'); ?> |
415 </td> |
415 </td> |
416 <td> |
416 <td> |
417 <input onkeyup="verify(this);" tabindex="5" name="table_prefix" size="30" type="text" /> |
417 <input onkeyup="verify(this);" tabindex="5" name="table_prefix" size="30" type="text" /> |
418 </td> |
418 </td> |
419 <td> |
419 <td> |
420 <img id="s_table_prefix" alt="Good/bad icon" src="../images/check.png" /> |
420 <img id="s_table_prefix" alt="Good/bad icon" src="../images/check.png" /> |
421 </td> |
421 </td> |
422 </tr> |
422 </tr> |
423 <tr> |
423 <tr> |
424 <td> |
424 <td> |
425 <b><?php echo $lang->get('dbpgsql_field_rootauth_title'); ?></b><br /> |
425 <b><?php echo $lang->get('dbpgsql_field_rootauth_title'); ?></b><br /> |
426 <?php echo $lang->get('dbpgsql_field_rootauth_body'); ?><br /> |
426 <?php echo $lang->get('dbpgsql_field_rootauth_body'); ?><br /> |
427 <span style="color: #993300" id="e_db_root"></span> |
427 <span style="color: #993300" id="e_db_root"></span> |
428 </td> |
428 </td> |
429 <td> |
429 <td> |
430 <input onkeyup="verify(this);" tabindex="6" name="db_root_user" size="30" type="text" /><br /> |
430 <input onkeyup="verify(this);" tabindex="6" name="db_root_user" size="30" type="text" /><br /> |
431 <br /> |
431 <br /> |
432 <input onkeyup="verify(this);" tabindex="7" name="db_root_pass" size="30" type="password" /> |
432 <input onkeyup="verify(this);" tabindex="7" name="db_root_pass" size="30" type="password" /> |
433 </td> |
433 </td> |
434 <td> |
434 <td> |
435 <img id="s_db_root" alt="Good/bad icon" src="../images/check.png" /> |
435 <img id="s_db_root" alt="Good/bad icon" src="../images/check.png" /> |
436 </td> |
436 </td> |
437 </tr> |
437 </tr> |
438 <tr> |
438 <tr> |
439 <td> |
439 <td> |
440 <b><?php echo $lang->get('dbpgsql_field_pgsqlversion_title'); ?></b> |
440 <b><?php echo $lang->get('dbpgsql_field_pgsqlversion_title'); ?></b> |
441 </td> |
441 </td> |
442 <td id="e_pgsql_version"> |
442 <td id="e_pgsql_version"> |
443 <?php echo $lang->get('dbpgsql_field_pgsqlversion_blurb_willbechecked'); ?> |
443 <?php echo $lang->get('dbpgsql_field_pgsqlversion_blurb_willbechecked'); ?> |
444 </td> |
444 </td> |
445 <td> |
445 <td> |
446 <img id="s_pgsql_version" alt="Good/bad icon" src="../images/checkunk.png" /> |
446 <img id="s_pgsql_version" alt="Good/bad icon" src="../images/checkunk.png" /> |
447 </td> |
447 </td> |
448 </tr> |
448 </tr> |
449 <tr> |
449 <tr> |
450 <td> |
450 <td> |
451 <b><?php echo $lang->get('dbpgsql_field_droptables_title'); ?></b><br /> |
451 <b><?php echo $lang->get('dbpgsql_field_droptables_title'); ?></b><br /> |
452 <?php echo $lang->get('dbpgsql_field_droptables_body'); ?> |
452 <?php echo $lang->get('dbpgsql_field_droptables_body'); ?> |
453 </td> |
453 </td> |
454 <td colspan="2"> |
454 <td colspan="2"> |
455 <input type="checkbox" tabindex="8" name="drop_tables" id="dtcheck" /> <label for="dtcheck"><?php echo $lang->get('dbpgsql_field_droptables_lbl'); ?></label> |
455 <input type="checkbox" tabindex="8" name="drop_tables" id="dtcheck" /> <label for="dtcheck"><?php echo $lang->get('dbpgsql_field_droptables_lbl'); ?></label> |
456 </td> |
456 </td> |
457 </tr> |
457 </tr> |
458 <tr> |
458 <tr> |
459 <td colspan="3" style="text-align: center"> |
459 <td colspan="3" style="text-align: center"> |
460 <input type="button" value="<?php echo $lang->get('dbpgsql_btn_testconnection'); ?>" onclick="ajaxTestConnection();" /> |
460 <input type="button" value="<?php echo $lang->get('dbpgsql_btn_testconnection'); ?>" onclick="ajaxTestConnection();" /> |
461 <div id="verify_error"></div> |
461 <div id="verify_error"></div> |
462 </td> |
462 </td> |
463 </tr> |
463 </tr> |
464 |
464 |
465 </table> |
465 </table> |
466 |
466 |
467 <table border="0"> |
467 <table border="0"> |
468 <tr> |
468 <tr> |
469 <td> |
469 <td> |
470 <input type="submit" tabindex="9" value="<?php echo $lang->get('meta_btn_continue'); ?>" onclick="return verify();" name="_cont" /> |
470 <input type="submit" tabindex="9" value="<?php echo $lang->get('meta_btn_continue'); ?>" onclick="return verify();" name="_cont" /> |
471 </td> |
471 </td> |
472 <td> |
472 <td> |
473 <p> |
473 <p> |
474 <span style="font-weight: bold;"><?php echo $lang->get('meta_lbl_before_continue'); ?></span><br /> |
474 <span style="font-weight: bold;"><?php echo $lang->get('meta_lbl_before_continue'); ?></span><br /> |
475 • <?php echo $lang->get('database_objective_test'); ?><br /> |
475 • <?php echo $lang->get('database_objective_test'); ?><br /> |
476 • <?php echo $lang->get('database_objective_uncrypt'); ?> |
476 • <?php echo $lang->get('database_objective_uncrypt'); ?> |
477 </p> |
477 </p> |
478 </td> |
478 </td> |
479 </tr> |
479 </tr> |
480 </table> |
480 </table> |
481 |
481 |
482 </form> |
482 </form> |
483 |
483 |
484 <script type="text/javascript"> |
484 <script type="text/javascript"> |
485 verify(); |
485 verify(); |
486 </script> |
486 </script> |
487 |
487 |