summaryrefslogtreecommitdiffstats
path: root/inc/util.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/util.inc.php')
-rw-r--r--inc/util.inc.php44
1 files changed, 37 insertions, 7 deletions
diff --git a/inc/util.inc.php b/inc/util.inc.php
index 0d85b989..f456d164 100644
--- a/inc/util.inc.php
+++ b/inc/util.inc.php
@@ -1,30 +1,53 @@
<?php
-$verboseDebug = true;
-
class Util
{
+
+ /**
+ * Displays an error message and stops script execution.
+ * If CONFIG_DEBUG is true, it will also dump a stack trace
+ * and all globally defined variables.
+ * (As this might reveal sensistive data you should never enable it in production)
+ */
public static function traceError($message)
{
- global $verboseDebug;
Header('Content-Type: text/plain; charset=utf-8');
echo "--------------------\nFlagrant system error:\n$message\n--------------------\n\n";
- if (isset($verboseDebug) && $verboseDebug) {
+ if (defined('CONFIG_DEBUG') && CONFIG_DEBUG) {
debug_print_backtrace();
echo "\n\n";
- $vars = get_defined_vars();
- print_r($vars);
+ print_r($GLOBALS);
}
exit(0);
}
+ /**
+ * Redirects the user via a '302 Moved' header.
+ * An active session will be saved, any messages that haven't
+ * been displayed yet will be appended to the redirect.
+ */
public static function redirect($location)
{
Session::save();
+ $messages = Message::toRequest();
+ if (!empty($messages)) {
+ if (strpos($location, '?') === false) {
+ $location .= '?' . $messages;
+ } else {
+ $location .= '&' . $messages;
+ }
+ }
Header('Location: ' . $location);
exit(0);
}
+ /**
+ * Verify the user's token that protects agains CSRF.
+ * If the user is logged in and there is no token variable set in
+ * the request, or the submitted token does not match the user's
+ * token, this function will return false and display an error.
+ * If the token matches, or the user is not logged in, it will return true.
+ */
public static function verifyToken()
{
if (Session::get('token') === false) return true;
@@ -33,7 +56,14 @@ class Util
return false;
}
- function markup($string)
+ /**
+ * Simple markup "rendering":
+ * *word* is bold
+ * /word/ is italics
+ * _word_ is underlined
+ * \n is line break
+ */
+ public static function markup($string)
{
$string = htmlspecialchars($string);
$string = preg_replace('#(^|[\n \-_/\.])\*(.+?)\*($|[ \-_/\.\!\?,])#is', '$1<b>$2</b>$3', $string);