Index: typo3/sysext/cms/tslib/class.tslib_fe.php
===================================================================
--- typo3/sysext/cms/tslib/class.tslib_fe.php (Revision 9957)
+++ typo3/sysext/cms/tslib/class.tslib_fe.php (Arbeitskopie)
@@ -487,53 +487,32 @@
* @return void
*/
function connectToDB() {
- try {
- $link = $GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password);
- } catch (RuntimeException $e) {
- if (TYPO3_db) {
- // Database is defined, this should normally not happen, user should be informed
- throw $e;
- }
- $link = FALSE;
+ if (!TYPO3_db_host && !TYPO3_db) {
+ // jump into Install Tool 1-2-3 mode, if neither database host nor name are defined (fresh installation)
+ t3lib_utility_Http::redirect(TYPO3_mainDir.'install/index.php?mode=123&step=1&password=joh316');
}
+
+ // sql_pconnect() can throw an Exception in case of some failures, or it returns FALSE
+ $link = $GLOBALS['TYPO3_DB']->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password);
if ($link !== FALSE) {
- if (!TYPO3_db) {
- throw new RuntimeException('Database Error: No database selected');
- // Redirects to the Install Tool:
- echo '';
- exit;
- } elseif (!$GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db)) {
+ if (!$GLOBALS['TYPO3_DB']->sql_select_db(TYPO3_db)) {
if ($this->checkPageUnavailableHandler()) {
- $this->pageUnavailableAndExit('Cannot connect to the current database, "'.TYPO3_db.'"');
+ $this->pageUnavailableAndExit('Cannot connect to the configured database "'.TYPO3_db.'"');
} else {
- $message = 'Cannot connect to the current database, "'.TYPO3_db.'"';
+ $message = 'Cannot connect to the configured database "'.TYPO3_db.'"';
t3lib_div::sysLog($message, 'cms', t3lib_div::SYSLOG_SEVERITY_ERROR);
header('HTTP/1.0 503 Service Temporarily Unavailable');
- throw new RuntimeException('Database Error: ' . $message);
+ throw new RuntimeException('Database Error: ' . $message, 1293617736);
}
}
} else {
- if (!TYPO3_db) {
- // Redirects to the Install Tool:
- echo '';
- exit;
- }
-
if ($this->checkPageUnavailableHandler()) {
$this->pageUnavailableAndExit('The current username, password or host was not accepted when the connection to the database was attempted to be established!');
} else {
$message = 'The current username, password or host was not accepted when the connection to the database was attempted to be established!';
t3lib_div::sysLog($message, 'cms', t3lib_div::SYSLOG_SEVERITY_ERROR);
header('HTTP/1.0 503 Service Temporarily Unavailable');
- throw new RuntimeException('Database Error: ' . $message);
+ throw new RuntimeException('Database Error: ' . $message, 1293617741);
}
}