X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fglobal.php;h=1f560e89500cafa69f4420938ca146f64e80f5dc;hp=aeee4ff815318d63a90eccfe345ac49f54fde926;hb=8442ecb9a9eb963c4ab2de6c09d115a46cbe9385;hpb=5fe8257d38437196c050b12601ea2a6d7fdbf4fe diff --git a/functions/global.php b/functions/global.php index aeee4ff8..1f560e89 100644 --- a/functions/global.php +++ b/functions/global.php @@ -7,7 +7,7 @@ * It also has some session register functions that work across various * php versions. * - * @copyright © 1999-2006 The SquirrelMail Project Team + * @copyright © 1999-2007 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -23,6 +23,7 @@ define('SQ_COOKIE',4); define('SQ_SERVER',5); define('SQ_FORM',6); + /** * returns true if current php version is at mimimum a.b.c * @@ -82,6 +83,40 @@ function sqstripslashes(&$array) { } } +/** + * Squelch error output to screen (only) for the given function. + * + * This provides an alternative to the @ error-suppression + * operator where errors will not be shown in the interface + * but will show up in the server log file (assuming the + * administrator has configured PHP logging). + * + * @since 1.4.12 and 1.5.2 + * + * @param string $function The function to be executed + * @param array $args The arguments to be passed to the function + * (OPTIONAL; default no arguments) + * NOTE: The caller must take extra action if + * the function being called is supposed + * to use any of the parameters by + * reference. In the following example, + * $x is passed by reference and $y is + * passed by value to the "my_func" + * function. + * sq_call_function_suppress_errors('my_func', array(&$x, $y)); + * + * @return mixed The return value, if any, of the function being + * executed will be returned. + * + */ +function sq_call_function_suppress_errors($function, $args=NULL) { + $display_errors = ini_get('display_errors'); + ini_set('display_errors', '0'); + $ret = call_user_func_array($function, $args); + ini_set('display_errors', $display_errors); + return $ret; +} + /** * Add a variable to the session. * @param mixed $var the variable to register @@ -92,9 +127,7 @@ function sqsession_register ($var, $name) { sqsession_is_active(); - $_SESSION["$name"] = $var; - - session_register("$name"); + $_SESSION[$name] = $var; } /** @@ -128,6 +161,91 @@ function sqsession_is_registered ($name) { return $result; } + +/** + * Retrieves a form variable, from a set of possible similarly named + * form variables, based on finding a different, single field. This + * is intended to allow more than one same-named inputs in a single + *