From f0721fdb032fd6b3c30cfd34c86a9ce9b4099a6c Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 10 Jun 2014 09:57:44 -0400 Subject: [PATCH] BUG 15012 "When creating a dynaform with the character..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - When creating a dynaform with the character "&", the field handlers not working. - Problema resuelto, el problema que se teníera lo siguiente cuando se utiliza el "&" en el tílo de un dynaform, cuando se enviaba los datos via GET, el "&" lo interpretaba como un separador de variables y esto ocasionaba la division de los datos que se enviaba. Se valida los datos enviados via GET codificáolos y al recibir estos datos se los decodifica. --- workflow/engine/classes/class.dynaformEditor.php | 8 +++++++- workflow/engine/methods/services/sessionPersists.php | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index 4a41d8837..6db4dfcbd 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -131,10 +131,12 @@ class dynaformEditor extends WebResource { global $G_PUBLISH; $script = ''; + /* Start Block: Load (Create if doesn't exist) the xmlform */ $Parameters = array('SYS_LANG' => SYS_LANG, 'URL' => G::encrypt($this->file, URL_KEY), 'DYN_UID' => $this->dyn_uid, 'PRO_UID' => $this->pro_uid, 'DYNAFORM_NAME' => $this->dyn_title, 'FILE' => $this->file, 'DYN_EDITOR' => $this->dyn_editor ); $_SESSION['Current_Dynafom']['Parameters'] = $Parameters; + $XmlEditor = array('URL' => G::encrypt($this->file, URL_KEY), 'XML' => '' //$openDoc->getXml() ); $JSEditor = array('URL' => G::encrypt($this->file, URL_KEY) @@ -237,7 +239,11 @@ class dynaformEditor extends WebResource leimnud.event.add(window,"load",function(){ loadEditor(); }); '); $oHeadPublisher->addScriptCode(' var jsMeta;var __usernameLogged__ = "' . (isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '') . '";var SYS_LANG = "' . SYS_LANG . '";var __DYN_UID__ = "' . $this->dyn_uid . '";'); - $oHeadPublisher->addScriptCode('var dynaformEditorParams = \'' . serialize($Parameters) . '\';'); + + $arrayParameterAux = $Parameters; + $arrayParameterAux["DYNAFORM_NAME"] = base64_encode($arrayParameterAux["DYNAFORM_NAME"]); + $oHeadPublisher->addScriptCode('var dynaformEditorParams = \'' . serialize($arrayParameterAux) . '\';'); + G::RenderPage("publish", 'blank'); } diff --git a/workflow/engine/methods/services/sessionPersists.php b/workflow/engine/methods/services/sessionPersists.php index d1d10f1c6..b545c1eaf 100755 --- a/workflow/engine/methods/services/sessionPersists.php +++ b/workflow/engine/methods/services/sessionPersists.php @@ -2,7 +2,9 @@ $response = new stdclass(); $response->status = isset($_SESSION['USER_LOGGED']); if (isset($_REQUEST['dynaformEditorParams'])) { - $_SESSION['Current_Dynafom']['Parameters'] = unserialize(stripslashes(utf8_decode(rawurldecode($_REQUEST["dynaformEditorParams"])))); + $arrayParameterAux = unserialize(rawurldecode($_REQUEST["dynaformEditorParams"])); + $arrayParameterAux["DYNAFORM_NAME"] = base64_decode($arrayParameterAux["DYNAFORM_NAME"]); + $_SESSION["Current_Dynafom"]["Parameters"] = $arrayParameterAux; if (isset($_REQUEST['DYN_UID'])) { $dynaform = new dynaform();