00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00061
00062
00063
00064 error_reporting (E_ALL ^ E_NOTICE);
00065
00066
00067
00068
00069
00070 define('TYPO3_OS', stristr(PHP_OS,'win')&&!stristr(PHP_OS,'darwin')?'WIN':'');
00071 define('TYPO3_MODE','BE');
00072 define('PATH_thisScript',str_replace('
00073 define('TYPO3_mainDir', 'typo3/');
00074
00075
00076
00077
00078
00079 $temp_path = str_replace('\\','/',dirname(PATH_thisScript).'/');
00080 $temp_modPath='';
00081
00082 if (substr($temp_path,-strlen(TYPO3_mainDir))!=TYPO3_mainDir) {
00083 if (defined('TYPO3_MOD_PATH')) {
00084 if (substr($temp_path,-strlen(TYPO3_MOD_PATH))==TYPO3_MOD_PATH) {
00085 $temp_path=substr($temp_path,0,-strlen(TYPO3_MOD_PATH));
00086 $temp_modPath=TYPO3_MOD_PATH;
00087 } elseif (substr(TYPO3_MOD_PATH,0,13)=='../typo3conf/' && (substr(TYPO3_MOD_PATH,3)==substr($temp_path,-strlen(substr(TYPO3_MOD_PATH,3))))) {
00088 $temp_path = substr($temp_path,0,-strlen(substr(TYPO3_MOD_PATH,3))).TYPO3_mainDir;
00089 $temp_modPath=TYPO3_MOD_PATH;
00090 }
00091 if (!@is_dir($temp_path)) {
00092 $temp_path='';
00093 }
00094 }
00095 }
00096
00097
00098 if (!$temp_path || substr($temp_path,-strlen(TYPO3_mainDir))!=TYPO3_mainDir) {
00099 if (TYPO3_OS=='WIN') {
00100 $thisPath_base = basename(substr($temp_path,-strlen(TYPO3_mainDir)));
00101 $mainPath_base = basename(TYPO3_mainDir);
00102 if (!strcasecmp($thisPath, $mainPath)) {
00103 $script_name = (php_sapi_name()=='cgi'||php_sapi_name()=='cgi-fcgi')&&($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) ? ($_SERVER['ORIG_PATH_INFO']?$_SERVER['ORIG_PATH_INFO']:$_SERVER['PATH_INFO']) : ($_SERVER['ORIG_SCRIPT_NAME']?$_SERVER['ORIG_SCRIPT_NAME']:$_SERVER['SCRIPT_NAME']);
00104 header('Location: '.str_replace($thisPath_base, $mainPath_base, $script_name));
00105 exit;
00106 }
00107 }
00108
00109 echo 'Error in init.php: Path to TYPO3 main dir could not be resolved correctly. <br /><br />';
00110
00111 echo '<font color="red"><strong>';
00112 if (strstr($temp_path,'typo3_src')) {
00113 echo 'It seems you are trying to run the TYPO3 source libraries DIRECTLY! You cannot do that.<br />
00114 Please read the installation documents for more information.';
00115 } else {
00116 echo 'This happens if the last '.strlen(TYPO3_mainDir).' characters of this path, '.$temp_path.' ($temp_path), is NOT "'.TYPO3_mainDir.'" for some reason.<br />
00117 You may have a strange server configuration.
00118 Or maybe you didn\'t set constant TYPO3_MOD_PATH in your module?';
00119 }
00120 echo '</strong></font>';
00121
00122 echo '<br /><br />If you want to debug this issue, please edit typo3/init.php of your TYPO3 source and search for the die() call right after this line (search for this text to find)...';
00123
00124
00125 die();
00126 echo '<br /><br /><strong>If you expect any help from anybody on this issue, you should save this page as an html document and send it along with your request for help!</strong>';
00127 echo '<HR><pre>';
00128 print_r(array(
00129 'TYPO3_OS'=>TYPO3_OS,
00130 'PATH_thisScript'=>PATH_thisScript,
00131 'php_sapi_name()'=>php_sapi_name(),
00132 'TYPO3_MOD_PATH'=>TYPO3_MOD_PATH,
00133 'PATH_TRANSLATED'=>$_SERVER['PATH_TRANSLATED'],
00134 'SCRIPT_FILENAME'=>$_SERVER['SCRIPT_FILENAME']
00135 ));
00136 echo '</pre><HR>';
00137 phpinfo();
00138 exit;
00139 } else {
00140 define('PATH_typo3', $temp_path);
00141 define('PATH_typo3_mod', $temp_modPath);
00142 define('PATH_site', substr(PATH_typo3,0,-strlen(TYPO3_mainDir)));
00143 $temp_path_t3lib = @is_dir(PATH_site.'t3lib/') ? PATH_site.'t3lib/' : PATH_typo3.'t3lib/';
00144 define('PATH_t3lib', $temp_path_t3lib);
00145 define('PATH_typo3conf', PATH_site.'typo3conf/');
00146 }
00147
00148
00149
00150
00151
00152 require_once(PATH_t3lib.'class.t3lib_div.php');
00153 require_once(PATH_t3lib.'class.t3lib_extmgm.php');
00154
00155
00156
00157
00158 require(PATH_t3lib.'config_default.php');
00159 if (!defined ('TYPO3_db')) die ('The configuration file was not included.');
00160
00161 require_once(PATH_t3lib.'class.t3lib_db.php');
00162 $TYPO3_DB = t3lib_div::makeInstance('t3lib_DB');
00163 $TYPO3_DB->debugOutput = $TYPO3_CONF_VARS['SYS']['sqlDebug'];
00164
00165 $CLIENT = t3lib_div::clientInfo();
00166 $PARSETIME_START = t3lib_div::milliseconds();
00167
00168
00169
00170
00171
00172
00173
00174 if (defined('TYPO3_cliMode') && TYPO3_cliMode && basename(PATH_thisScript)=='cli_dispatch.phpsh') {
00175
00176 $temp_cliScriptPath = array_shift($_SERVER['argv']);
00177 $temp_cliKey = array_shift($_SERVER['argv']);
00178 array_unshift($_SERVER['argv'],$temp_cliScriptPath);
00179
00180
00181 if ($temp_cliKey) {
00182 if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys'][$temp_cliKey])) {
00183 define('TYPO3_cliInclude', t3lib_div::getFileAbsFileName($TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys'][$temp_cliKey][0]));
00184 $MCONF['name'] = $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys'][$temp_cliKey][1];
00185 } else {
00186 echo "The supplied 'cliKey' was not valid. Please use one of the available from this list:\n\n";
00187 print_r(array_keys($TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']));
00188 echo "\n";
00189 exit;
00190 }
00191 } else {
00192 echo "Please supply a 'cliKey' as first argument. The following are available:\n\n";
00193 print_r($TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']);
00194 echo "\n";
00195 exit;
00196 }
00197 }
00198
00199
00200
00201
00202
00203
00204 require_once(PATH_t3lib.'class.t3lib_userauth.php');
00205 require_once(PATH_t3lib.'class.t3lib_userauthgroup.php');
00206 require_once(PATH_t3lib.'class.t3lib_beuserauth.php');
00207 require_once(PATH_t3lib.'class.t3lib_iconworks.php');
00208 require_once(PATH_t3lib.'class.t3lib_befunc.php');
00209 require_once(PATH_t3lib.'class.t3lib_cs.php');
00210
00211
00212
00213
00214 if ($TYPO3_CONF_VARS['BE']['adminOnly'] < 0) {
00215 header('Status: 404 Not Found');
00216 header('Location: http:
00217 exit;
00218 }
00219
00220
00221
00222
00223 if (trim($TYPO3_CONF_VARS['BE']['IPmaskList']) && !(defined('TYPO3_cliMode') && TYPO3_cliMode)) {
00224 if (!t3lib_div::cmpIP(t3lib_div::getIndpEnv('REMOTE_ADDR'), $TYPO3_CONF_VARS['BE']['IPmaskList'])) {
00225 header('Status: 404 Not Found');
00226 header('Location: http:
00227 exit;
00228 }
00229 }
00230
00231
00232
00233
00234
00235 if (intval($TYPO3_CONF_VARS['BE']['lockSSL']) && !(defined('TYPO3_cliMode') && TYPO3_cliMode)) {
00236 if ($TYPO3_CONF_VARS['BE']['lockSSL'] == 3) {
00237 $requestStr = substr(t3lib_div::getIndpEnv('TYPO3_REQUEST_SCRIPT'), strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL').TYPO3_mainDir));
00238 if($requestStr == 'index.php' && !t3lib_div::getIndpEnv('TYPO3_SSL')) {
00239 list(,$url) = explode(':
00240 header('Location: https:
00241 }
00242 } elseif (!t3lib_div::getIndpEnv('TYPO3_SSL') ) {
00243 if ($TYPO3_CONF_VARS['BE']['lockSSL'] == 2) {
00244 list(,$url) = explode(':
00245 header('Location: https:
00246 } else {
00247 header('Status: 404 Not Found');
00248 header('Location: http:
00249 }
00250 exit;
00251 }
00252 }
00253
00254
00255
00256
00257
00258 if (t3lib_div::int_from_ver(phpversion())<4001000) die ('TYPO3 runs with PHP4.1.0+ only');
00259 if (isset($_POST['GLOBALS']) || isset($_GET['GLOBALS'])) die('You cannot set the GLOBALS-array from outside the script.');
00260 if (!get_magic_quotes_gpc()) {
00261 t3lib_div::addSlashesOnArray($_GET);
00262 t3lib_div::addSlashesOnArray($_POST);
00263 $HTTP_GET_VARS = $_GET;
00264 $HTTP_POST_VARS = $_POST;
00265 }
00266
00267
00268
00269
00270
00271 if (defined('TYPO3_enterInstallScript') && TYPO3_enterInstallScript) {
00272 if (!t3lib_extMgm::isLoaded('install')) die('Install Tool is not loaded as an extension.<br/>You must add the key "install" to the list of installed extensions in typo3conf/localconf.php, $TYPO3_CONF_VARS["EXT"]["extList"].');
00273
00274 require_once(t3lib_extMgm::extPath('install').'mod/class.tx_install.php');
00275 $install_check = t3lib_div::makeInstance('tx_install');
00276 $install_check->allowUpdateLocalConf = 1;
00277 $install_check->init();
00278 exit;
00279 }
00280
00281
00282
00283
00284
00285 if ($TYPO3_DB->sql_pconnect(TYPO3_db_host, TYPO3_db_username, TYPO3_db_password)) {
00286 if (!TYPO3_db) {
00287 t3lib_BEfunc::typo3PrintError ('No database selected','Database Error');
00288 exit;
00289 } elseif (!$TYPO3_DB->sql_select_db(TYPO3_db)) {
00290 t3lib_BEfunc::typo3PrintError ('Cannot connect to the current database, "'.TYPO3_db.'"','Database Error');
00291 exit;
00292 }
00293 } else {
00294 t3lib_BEfunc::typo3PrintError ('The current username, password or host was not accepted when the connection to the database was attempted to be established!','Database Error');
00295 exit;
00296 }
00297
00298
00299
00300
00301
00302 if (!$CLIENT['BROWSER'] && !(defined('TYPO3_cliMode') && TYPO3_cliMode)) {
00303 t3lib_BEfunc::typo3PrintError ('Browser error','Your browser version looks incompatible with this TYPO3 version!',0);
00304 exit;
00305 }
00306
00307
00308
00309
00310
00311 include (TYPO3_tables_script ? PATH_typo3conf.TYPO3_tables_script : PATH_t3lib.'stddb/tables.php');
00312
00313 if ($TYPO3_LOADED_EXT['_CACHEFILE']) {
00314 include (PATH_typo3conf.$TYPO3_LOADED_EXT['_CACHEFILE'].'_ext_tables.php');
00315 } else {
00316 include (PATH_t3lib.'stddb/load_ext_tables.php');
00317 }
00318
00319 if (TYPO3_extTableDef_script) {
00320 include (PATH_typo3conf.TYPO3_extTableDef_script);
00321 }
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332 $BE_USER = t3lib_div::makeInstance('t3lib_beUserAuth');
00333 $BE_USER->warningEmail = $TYPO3_CONF_VARS['BE']['warning_email_addr'];
00334 $BE_USER->lockIP = $TYPO3_CONF_VARS['BE']['lockIP'];
00335 $BE_USER->auth_timeout_field = intval($TYPO3_CONF_VARS['BE']['sessionTimeout']);
00336 $BE_USER->OS = TYPO3_OS;
00337 $BE_USER->start();
00338 $BE_USER->checkCLIuser();
00339 $BE_USER->backendCheckLogin();
00340 $BE_USER->trackBeUser($TYPO3_CONF_VARS['BE']['trackBeUser']);
00341
00342
00343 $WEBMOUNTS = $BE_USER->returnWebmounts();
00344 $FILEMOUNTS = $BE_USER->returnFilemounts();
00345
00346
00347
00348
00349
00350 if (defined('TYPO3_cliMode') && TYPO3_cliMode) {
00351
00352 if (!strcmp($_SERVER['argv'][1],'status')) {
00353 echo "Status of TYPO3 CLI script:\n\n";
00354 echo "Username [uid]: ".$BE_USER->user['username']." [".$BE_USER->user['uid']."]\n";
00355 echo "Database: ".TYPO3_db."\n";
00356 echo "PATH_site: ".PATH_site."\n";
00357 echo "\n";
00358 exit;
00359 }
00360 }
00361
00362
00363
00364
00365 if ($TYPO3_CONF_VARS['BE']['compressionLevel']) {
00366 ob_start();
00367 require_once (PATH_t3lib.'class.gzip_encode.php');
00368 }
00369 ?>
This documentation has been generated automatically from TYPO3 source code using
Doxygen and is provided as is by
Cast Iron Coding
as a courtesy to other TYPO3 developers and users. Please consider
Cast Iron Coding — a full-service web development
agency in Portland, Oregon specializing in TYPO3 extension development — for all of your TYPO3 development and consulting needs!