Revision 2129
Added by darkviper over 9 years ago
initialize.php | ||
---|---|---|
215 | 215 |
return $aRetval; |
216 | 216 |
} |
217 | 217 |
|
218 |
function WbErrorHandler($iErrorCode, $sErrorText, $sErrorFile, $iErrorLine) |
|
219 |
{ |
|
220 |
if (!(error_reporting() & $iErrorCode)) { |
|
221 |
return false; |
|
222 |
} |
|
223 |
$bRetval = false; |
|
224 |
$aErrors = array( |
|
225 |
E_USER_DEPRECATED => 'E_USER_DEPRECATED', |
|
226 |
E_USER_NOTICE => 'E_USER_NOTICE', |
|
227 |
E_USER_WARNING => 'E_USER_WARNING', |
|
228 |
E_DEPRECATED => 'E_DEPRECATED', |
|
229 |
E_NOTICE => 'E_NOTICE', |
|
230 |
E_WARNING => 'E_WARNING', |
|
231 |
E_CORE_WARNING => 'E_CORE_WARNING', |
|
232 |
E_COMPILE_WARNING => 'E_COMPILE_WARNING', |
|
233 |
E_STRICT => 'E_STRICT', |
|
234 |
); |
|
235 |
if (array_key_exists($iErrorCode, $aErrors)) { |
|
236 |
$sErrorType = $aErrors[$iErrorCode]; |
|
237 |
$bRetval = true; |
|
238 |
} |
|
239 |
$aBt= debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); |
|
240 |
$sEntry = date('c').' '.'['.$sErrorType.'] '.str_replace(dirname(__DIR__), '', $sErrorFile).':['.$iErrorLine.'] ' |
|
241 |
. ' from '.str_replace(dirname(__DIR__), '', $aBt[2]['file']).':['.$aBt[2]['line'].'] ' |
|
242 |
. (@$aBt[2]['class'] ? $aBt[2]['class'].$aBt[2]['type'] : '').$aBt[2]['function'].' ' |
|
243 |
. '"'.$sErrorText.'"'.PHP_EOL; |
|
244 |
file_put_contents(dirname(__DIR__).'/temp/ERROR.LOG', $sEntry, FILE_APPEND); |
|
245 |
return $bRetval; |
|
246 |
} |
|
218 | 247 |
/* *************************************************************************************** |
219 | 248 |
* Start initialization * |
220 | 249 |
****************************************************************************************/ |
250 |
// activate errorhandler |
|
251 |
set_error_handler('WbErrorHandler'); |
|
221 | 252 |
// reset global output buffering |
222 | 253 |
while (ob_get_level()) { ob_end_clean(); } |
223 | 254 |
// test for existing and active old config.php |
... | ... | |
242 | 273 |
if (! defined('SYSTEM_RUN')) { define('SYSTEM_RUN', true); } |
243 | 274 |
// load configuration --- |
244 | 275 |
$aCfg = initReadSetupFile(); |
276 |
|
|
245 | 277 |
// sanitize $_SERVER['HTTP_REFERER'] --- |
246 | 278 |
initSetInstallPathConstants(); |
247 | 279 |
initSanitizeHttpReferer(WB_URL); |
... | ... | |
294 | 326 |
// load global settings from database and define global consts from --- |
295 | 327 |
$sql = 'SELECT `name`, `value` FROM `'.$oDb->TablePrefix.'settings`'; |
296 | 328 |
if(($oSettings = $oDb->doQuery($sql))) { |
297 |
if(!$oSettings->numRows()) { throw new AppException('no settings found'); } |
|
298 |
while($aSetting = $oSettings->fetchRow(MYSQL_ASSOC)) { |
|
299 |
//sanitize true/false values |
|
300 |
$aSetting['value'] = ($aSetting['value'] == 'true' |
|
301 |
? true |
|
302 |
: ($aSetting['value'] == 'false' |
|
303 |
? false |
|
304 |
: $aSetting['value']) |
|
305 |
); |
|
306 |
$sSettingName = strtoupper($aSetting['name']); |
|
307 |
switch($sSettingName): |
|
308 |
case 'STRING_FILE_MODE': |
|
309 |
$iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600); |
|
310 |
if(!defined('OCTAL_FILE_MODE')) { define('OCTAL_FILE_MODE', $iTmp); } // deprecated |
|
311 |
if(!defined('FILE_MODE_OCTAL')) { define('FILE_MODE_OCTAL', $iTmp); } |
|
312 |
if(!defined('STRING_FILE_MODE')) { define('STRING_FILE_MODE', sprintf('0%03o', $iTmp)); } // deprecated |
|
313 |
if(!defined('FILE_MODE_STRING')) { define('FILE_MODE_STRING', sprintf('0%03o', $iTmp)); } |
|
314 |
break; |
|
315 |
case 'STRING_DIR_MODE': |
|
316 |
$iTmp = (intval(octdec($aSetting['value'])) |0711); |
|
317 |
if(!defined('OCTAL_DIR_MODE')) { define('OCTAL_DIR_MODE', $iTmp); } // deprecated |
|
318 |
if(!defined('DIR_MODE_OCTAL')) { define('DIR_MODE_OCTAL', $iTmp); } |
|
319 |
if(!defined('STRING_DIR_MODE')) { define('STRING_DIR_MODE', sprintf('0%03o', $iTmp)); } // deprecated |
|
320 |
if(!defined('DIR_MODE_STRING')) { define('DIR_MODE_STRING', sprintf('0%03o', $iTmp)); } |
|
321 |
break; |
|
322 |
case 'PAGES_DIRECTORY': |
|
323 |
// sanitize pages_directory |
|
324 |
$sTmp = trim($aSetting['value'], '/'); |
|
325 |
$sTmp = ($sTmp == '' ? '' : '/'.$sTmp); |
|
326 |
if(!defined('PAGES_DIRECTORY')) { define('PAGES_DIRECTORY', $sTmp); } |
|
327 |
break; |
|
328 |
default: // make global const from setting |
|
329 |
if(!defined($sSettingName)) { define($sSettingName, $aSetting['value']); } |
|
330 |
break; |
|
331 |
endswitch; |
|
329 |
if (($aRecords = $oSettings->fetchAll(MYSQLI_NUM))) { |
|
330 |
$iNum = sizeof($aRecords); |
|
331 |
for ($i = 0; $i < $iNum; $i++) { |
|
332 |
$aSetting = $aRecords[$i]; |
|
333 |
//sanitize true/false values |
|
334 |
$aSetting['value'] = ($aSetting['value'] == 'true' |
|
335 |
? true |
|
336 |
: ($aSetting['value'] == 'false' |
|
337 |
? false |
|
338 |
: $aSetting['value']) |
|
339 |
); |
|
340 |
$sSettingName = strtoupper($aSetting['name']); |
|
341 |
switch($sSettingName): |
|
342 |
case 'STRING_FILE_MODE': |
|
343 |
$iTmp = ((intval(octdec($aSetting['value'])) & ~0111)|0600); |
|
344 |
if(!defined('OCTAL_FILE_MODE')) { define('OCTAL_FILE_MODE', $iTmp); } // deprecated |
|
345 |
if(!defined('FILE_MODE_OCTAL')) { define('FILE_MODE_OCTAL', $iTmp); } |
|
346 |
if(!defined('STRING_FILE_MODE')) { define('STRING_FILE_MODE', sprintf('0%03o', $iTmp)); } // deprecated |
|
347 |
if(!defined('FILE_MODE_STRING')) { define('FILE_MODE_STRING', sprintf('0%03o', $iTmp)); } |
|
348 |
break; |
|
349 |
case 'STRING_DIR_MODE': |
|
350 |
$iTmp = (intval(octdec($aSetting['value'])) |0711); |
|
351 |
if(!defined('OCTAL_DIR_MODE')) { define('OCTAL_DIR_MODE', $iTmp); } // deprecated |
|
352 |
if(!defined('DIR_MODE_OCTAL')) { define('DIR_MODE_OCTAL', $iTmp); } |
|
353 |
if(!defined('STRING_DIR_MODE')) { define('STRING_DIR_MODE', sprintf('0%03o', $iTmp)); } // deprecated |
|
354 |
if(!defined('DIR_MODE_STRING')) { define('DIR_MODE_STRING', sprintf('0%03o', $iTmp)); } |
|
355 |
break; |
|
356 |
case 'PAGES_DIRECTORY': |
|
357 |
// sanitize pages_directory |
|
358 |
$sTmp = trim($aSetting['value'], '/'); |
|
359 |
$sTmp = ($sTmp == '' ? '' : '/'.$sTmp); |
|
360 |
if(!defined('PAGES_DIRECTORY')) { define('PAGES_DIRECTORY', $sTmp); } |
|
361 |
break; |
|
362 |
default: // make global const from setting |
|
363 |
if(!defined($sSettingName)) { define($sSettingName, $aSetting['value']); } |
|
364 |
break; |
|
365 |
endswitch; |
|
366 |
} |
|
367 |
} else { |
|
368 |
throw new AppException('no settings found'); |
|
332 | 369 |
} |
333 |
}else { throw new AppException($database->get_error()); } |
|
370 |
} else { |
|
371 |
throw new AppException($oDb->getError()); |
|
372 |
} |
|
373 |
$oReg->getWbConstants(); |
|
334 | 374 |
// set error-reporting from loaded settings --- |
335 |
if(intval(ER_LEVEL) > 0 ) { |
|
336 |
error_reporting(ER_LEVEL); |
|
337 |
if( intval(ini_get ( 'display_errors' )) == 0 ) { |
|
338 |
ini_set('display_errors', 1); |
|
339 |
} |
|
375 |
$iErrorLevel = intval(ER_LEVEL); |
|
376 |
if ($iErrorLevel >= 0 && $iErrorLevel <= E_ALL) { |
|
377 |
error_reporting($iErrorLevel); |
|
378 |
} else { |
|
379 |
// on invalid value in ER_LEVEL activate E_ALL |
|
380 |
error_reporting(E_ALL); |
|
340 | 381 |
} |
382 |
// activate display_errors |
|
383 |
if( intval(ini_get ( 'display_errors' )) == 0 ) { |
|
384 |
ini_set('display_errors', 1); |
|
385 |
} |
|
341 | 386 |
// Start a session --- |
342 | 387 |
if(!defined('SESSION_STARTED')) { |
343 | 388 |
session_name(APP_NAME.'_session_id'); |
... | ... | |
367 | 412 |
// *** begin deprecated part ************************************************************* |
368 | 413 |
// load settings for use in Captch and ASP module |
369 | 414 |
if (!defined('WB_INSTALL_PROCESS') && !defined('ENABLED_CAPTCHA')) { |
370 |
$sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_captcha_control`';
|
|
415 |
$sql = 'SELECT * FROM `'.$oDb->TablePrefix.'mod_captcha_control`';
|
|
371 | 416 |
// request settings from database |
372 |
if(($oSettings = $database->query($sql))) {
|
|
373 |
if(($aSetting = $oSettings->fetchRow(MYSQL_ASSOC))) {
|
|
417 |
if(($oSettings = $oDb->doQuery($sql))) {
|
|
418 |
if(($aSetting = $oSettings->fetchAssoc())) {
|
|
374 | 419 |
define('ENABLED_CAPTCHA', ($aSetting['enabled_captcha'] == '1')); |
375 | 420 |
define('ENABLED_ASP', ($aSetting['enabled_asp'] == '1')); |
376 | 421 |
define('CAPTCHA_TYPE', $aSetting['captcha_type']); |
Also available in: Unified diff
! framework/initialize.php added ErrorHandler and ERROR-LOG file