From: Janusz Dobrowolski Date: Mon, 8 Dec 2014 19:14:01 +0000 (+0100) Subject: Fixed problems with latin2 encoding due to changes in htmlspecialchars() behaviour... X-Git-Tag: 2.3-final~83 X-Git-Url: https://delta.frontaccounting.com/gitweb/?p=fa-stable.git;a=commitdiff_plain;h=ac86042c0f4d7f15e3422d3fefdd6b7f70672129 Fixed problems with latin2 encoding due to changes in htmlspecialchars() behaviour in newer php versions. --- diff --git a/includes/db/connect_db.inc b/includes/db/connect_db.inc index 5b4293eb..bca8b86f 100644 --- a/includes/db/connect_db.inc +++ b/includes/db/connect_db.inc @@ -122,7 +122,7 @@ function db_num_fields ($result) function db_escape($value = "", $nullify = false) { $value = @html_entity_decode($value, ENT_QUOTES, $_SESSION['language']->encoding); - $value = @htmlspecialchars($value, ENT_QUOTES, $_SESSION['language']->encoding); + $value = @htmlspecialchars($value, ENT_QUOTES, $_SESSION['language']->encoding=='iso-8859-2' ? 'ISO-8859-1' : $_SESSION['language']->encoding); //reset default if second parameter is skipped $nullify = ($nullify === null) ? (false) : ($nullify); diff --git a/includes/session.inc b/includes/session.inc index 6e783373..73923741 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -316,7 +316,7 @@ function html_cleanup(&$parms) if (is_array($value)) html_cleanup($parms[$name]); else - $parms[$name] = @htmlspecialchars($value, ENT_QUOTES, $_SESSION['language']->encoding); + $parms[$name] = @htmlspecialchars($value, ENT_QUOTES, $_SESSION['language']->encoding=='iso-8859-2' ? 'ISO-8859-1' : $_SESSION['language']->encoding); } reset($parms); // needed for direct key() usage later throughout the sources } @@ -484,7 +484,8 @@ if (!defined('FA_LOGOUT_PHP_FILE')){ { // strip ajax marker from uri, to force synchronous page reload $_SESSION['timeout'] = array( 'uri'=>preg_replace('/JsHttpRequest=(?:(\d+)-)?([^&]+)/s', - '', @htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, $_SESSION['language']->encoding)), + '', @htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, $_SESSION['language']->encoding=='iso-8859-2' + ? 'ISO-8859-1' : $_SESSION['language']->encoding)), 'post' => $_POST); include($path_to_root . "/access/login.php");