From ec0cb887cf6d8c3b67c027f5d7ae924aee6b35cc Mon Sep 17 00:00:00 2001 From: Denis Chenu Date: Tue, 8 Sep 2015 17:41:06 +0200 Subject: [PATCH] Fixed issue #09862: Invitations substitute wrong token into barebone URL Dev: Replace in modsubject not in $sSubject array (used for each token) --- application/controllers/admin/tokens.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/application/controllers/admin/tokens.php b/application/controllers/admin/tokens.php index e272e50611c..c19ce8ea9d8 100644 --- a/application/controllers/admin/tokens.php +++ b/application/controllers/admin/tokens.php @@ -1420,15 +1420,17 @@ function email($iSurveyId, $tokenids = null) $customheaders = array('1' => "X-surveyid: " . $iSurveyId, '2' => "X-tokenid: " . $fieldsarray["{TOKEN}"]); global $maildebug; + $modsubject = $sSubject[$emrow['language']]; + $modmessage = $sMessage[$emrow['language']]; foreach(array('OPTOUT', 'OPTIN', 'SURVEY') as $key) { $url = $fieldsarray["{{$key}URL}"]; if ($bHtml) $fieldsarray["{{$key}URL}"] = "" . htmlspecialchars($url) . ''; - $sSubject[$emrow['language']] = str_replace("@@{$key}URL@@", $url, $sSubject[$emrow['language']]); - $sMessage[$emrow['language']] = str_replace("@@{$key}URL@@", $url, $sMessage[$emrow['language']]); + $modsubject = str_replace("@@{$key}URL@@", $url, $modsubject); + $modmessage = str_replace("@@{$key}URL@@", $url, $modmessage); } - $modsubject = Replacefields($sSubject[$emrow['language']], $fieldsarray); - $modmessage = Replacefields($sMessage[$emrow['language']], $fieldsarray); + $modsubject = Replacefields($modsubject, $fieldsarray); + $modmessage = Replacefields($modmessage, $fieldsarray); if (trim($emrow['validfrom']) != '' && convertDateTimeFormat($emrow['validfrom'], 'Y-m-d H:i:s', 'U') * 1 > date('U') * 1) { $tokenoutput .= $emrow['tid'] . " " . htmlspecialchars(ReplaceFields(gT("Email to {FIRSTNAME} {LASTNAME} ({EMAIL}) delayed: Token is not yet valid.",'unescaped'), $fieldsarray)). "
";