<parent>general</parent>
<showorder>3</showorder>
</category>
+ <category name="general.system.error">
+ <parent>general.system</parent>
+ </category>
<category name="general.system.cookie">
<parent>general.system</parent>
</category>
</option>
<!-- /general.system.search -->
+ <!-- general.system.error -->
+ <option name="exception_privacy">
+ <categoryname>general.system.error</categoryname>
+ <optiontype>radioButton</optiontype>
+ <defaultvalue><![CDATA[mysql]]></defaultvalue>
+ <selectoptions><![CDATA[public:wcf.acp.option.exception_privacy.public
+reduced:wcf.acp.option.exception_privacy.reduced
+private:wcf.acp.option.exception_privacy.private]]></selectoptions>
+ </option>
+ <!-- /general.system.error-->
+
<!-- general.system.cookie -->
<option name="cookie_prefix">
<categoryname>general.system.cookie</categoryname>
?><!DOCTYPE html>
<html>
<head>
- <?php if (WCF::debugModeIsEnabled()) { ?>
+ <?php if (!defined('EXCEPTION_PRIVACY') || EXCEPTION_PRIVACY !== 'private') { ?>
<title>Fatal Error: <?php echo StringUtil::encodeHTML($e->getMessage()); ?></title>
<?php } else { ?>
<title>Fatal Error</title>
</head>
<body>
<div class="exception">
- <?php if (WCF::debugModeIsEnabled()) { ?>
+ <?php if (!defined('EXCEPTION_PRIVACY') || EXCEPTION_PRIVACY !== 'private') { ?>
<h1>Fatal Error: <?php echo StringUtil::encodeHTML($e->getMessage()); ?></h1>
<?php } else { ?>
<h1>Fatal Error <!-- :( --></h1>
<p>An unrecoverable error occured while trying to handle your request. The internal error code is as follows: <code><?php echo $exceptionID; ?></code></p>
<p>Please send this code to the administrator to help him fix the issue.</p>
</div>
- <?php if (WCF::debugModeIsEnabled()) { ?>
+ <?php if (!defined('EXCEPTION_PRIVACY') || EXCEPTION_PRIVACY !== 'private') { ?>
<div>
<h2>System Information</h2>
<dl>
}
function sanitizePath($path) {
+ if (WCF::debugModeIsEnabled() && defined('EXCEPTION_PRIVACY') && EXCEPTION_PRIVACY === 'public') {
+ return $path;
+ }
+
return '*/'.FileUtil::removeTrailingSlash(FileUtil::getRelativePath(WCF_DIR, $path));
}
}
1,
'enable_debug_mode'
));
+ $statement->execute(array(
+ 'public',
+ 'exception_privacy'
+ ));
}
// update options.inc.php
<item name="wcf.acp.option.category.general.system.date"><![CDATA[Datum & Zeit]]></item>
<item name="wcf.acp.option.category.general.system.image"><![CDATA[Grafik]]></item>
<item name="wcf.acp.option.category.general.system"><![CDATA[System]]></item>
+ <item name="wcf.acp.option.category.general.system.error"><![CDATA[Fehlermeldungen]]></item>
<item name="wcf.acp.option.category.general.system.cookie"><![CDATA[Cookies]]></item>
<item name="wcf.acp.option.category.general.system.http"><![CDATA[HTTP]]></item>
<item name="wcf.acp.option.category.general.system.proxy"><![CDATA[Proxy-Server]]></item>
<item name="wcf.acp.option.category.security.antispam"><![CDATA[Anti-Spam]]></item>
<item name="wcf.acp.option.category.security.censorship"><![CDATA[Zensur]]></item>
<item name="wcf.acp.option.category.general.system.jquery"><![CDATA[jQuery]]></item>
+ <item name="wcf.acp.option.exception_privacy"><![CDATA[Privatsphäre]]></item>
+ <item name="wcf.acp.option.exception_privacy.description"><![CDATA[Gibt an, wie detailliert die Fehlermeldungen sind. Privat versteckt Fehler vollständig, gekürzt versucht private Informationen zu verstecken und öffentlich (nur bei aktivem Debug-Modus) zeigt alle Informationen an.]]></item>
+ <item name="wcf.acp.option.exception_privacy.public"><![CDATA[Öffentlich]]></item>
+ <item name="wcf.acp.option.exception_privacy.reduced"><![CDATA[Gekürzt]]></item>
+ <item name="wcf.acp.option.exception_privacy.private"><![CDATA[Privat]]></item>
<item name="wcf.acp.option.cookie_domain"><![CDATA[Cookiedomain]]></item>
<item name="wcf.acp.option.cookie_domain.description"><![CDATA[Standardmäßig sollten Sie dieses Feld frei lassen, da ein Ausfüllen nur in wenigen Fällen notwendig ist.]]></item>
<item name="wcf.acp.option.cookie_path"><![CDATA[Cookiepfad]]></item>
<item name="wcf.acp.option.category.general.system.date"><![CDATA[Date & Time]]></item>
<item name="wcf.acp.option.category.general.system.image"><![CDATA[Graphics]]></item>
<item name="wcf.acp.option.category.general.system"><![CDATA[System]]></item>
+ <item name="wcf.acp.option.category.general.system.error"><![CDATA[Error messages]]></item>
<item name="wcf.acp.option.category.general.system.cookie"><![CDATA[Cookies]]></item>
<item name="wcf.acp.option.category.general.system.http"><![CDATA[HTTP]]></item>
<item name="wcf.acp.option.category.general.system.proxy"><![CDATA[Proxy-Server]]></item>
<item name="wcf.acp.option.category.security.antispam"><![CDATA[Anti-Spam]]></item>
<item name="wcf.acp.option.category.security.censorship"><![CDATA[Censorship]]></item>
<item name="wcf.acp.option.category.general.system.jquery"><![CDATA[jQuery]]></item>
+ <item name="wcf.acp.option.exception_privacy"><![CDATA[Privacy]]></item>
+ <item name="wcf.acp.option.exception_privacy.description"><![CDATA[Specifies how detailed the error messages are. Private completely hides the error message, reduced tries to hide sensitive information and public (only supported in debug mode) shows everything.]]></item>
+ <item name="wcf.acp.option.exception_privacy.public"><![CDATA[Public]]></item>
+ <item name="wcf.acp.option.exception_privacy.reduced"><![CDATA[Reduced]]></item>
+ <item name="wcf.acp.option.exception_privacy.private"><![CDATA[Private]]></item>
<item name="wcf.acp.option.cookie_domain"><![CDATA[Cookie Domain]]></item>
<item name="wcf.acp.option.cookie_domain.description"><![CDATA[Should be left blank except for special circumstances.]]></item>
<item name="wcf.acp.option.cookie_path"><![CDATA[Cookie Path]]></item>