Author: richter Date: Tue Feb 24 07:03:07 2015 New Revision: 1661857 URL: http://svn.apache.org/r1661857 Log: Fix JavaScript Escaping Issue in Form::Validate
Modified: perl/embperl/trunk/Embperl/Form/Validate.pm perl/embperl/trunk/Embperl/Form/Validate/Default.pm perl/embperl/trunk/Embperl/Form/Validate/Number.pm perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm Modified: perl/embperl/trunk/Embperl/Form/Validate.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate.pm?rev=1661857&r1=1661856&r2=1661857&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate.pm Tue Feb 24 07:03:07 2015 @@ -369,7 +369,7 @@ sub validate sub build_message { - my ($self, $id, $key, $name, $msg, $param, $typeobj, $pref, $epreq) = @_ ; + my ($self, $id, $key, $name, $msg, $param, $typeobj, $pref, $epreq, $escape) = @_ ; my $language = $pref -> {language} ; my $default_language = $pref -> {default_language} || $self -> {default_language} ; @@ -404,6 +404,7 @@ sub build_message $txt ||= "Missing Message $id: %0 %1 %2 %3" ; $id = $param -> [0] ; $param -> [0] = $name ; + $param -> [0] =~ s/(?<!\\)\'/\\'/g if ($escape) ; my @param ; eval "require Encode" ; if ($charset && $has_encode) @@ -415,6 +416,7 @@ sub build_message @param = @$param ; } + $txt =~ s/(?<!\\)\'/\\'/g if ($escape) ; $txt =~ s/%(\d+)/$param[$1]/g ; $param -> [0] = $id ; @@ -596,7 +598,7 @@ sub gather_script_code my $setmsg = '' ; if ($msgparam && !$break) { - my $txt = $self -> build_message ($msgparam -> [0], $key, $nametxt, $msgtxt, $msgparam, $typeobj, $pref, $epreq) ; + my $txt = $self -> build_message ($msgparam -> [0], $key, $nametxt, $msgtxt, $msgparam, $typeobj, $pref, $epreq, 1) ; $setmsg = "ids[i] = '$key' ; msgs[i++]='$txt';" } if (!ref $key) Modified: perl/embperl/trunk/Embperl/Form/Validate/Default.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Default.pm?rev=1661857&r1=1661856&r2=1661857&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Default.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Default.pm Tue Feb 24 07:03:07 2015 @@ -33,22 +33,22 @@ $VERSION = '2.0.0' ; validate_required => 'Bitte Feld "%0" ausfüllen', validate_eq => 'Falscher Inhalt "%1" des Feldes "%0": Erwartet wird "%2"', validate_same => '"%0" stimmt nicht mit "%2" überein', - validate_lt => '%0 muß kleiner als %2 sein', - validate_gt => '%0 muß größer als %2 sein', - validate_le => '%0 muß kleiner oder gleich wie %2 sein', - validate_ge => '%0 muß größer oder gleich %2 sein', - validate_ne => '%0 muß ungleich %2 sein', - validate_length_max => 'Inhalt des Feldes %0 ist zu lang, maximale Länge sind %2, eingegeben wurden %1 Zeichen', - validate_length_min => 'Inhalt des Feldes %0 ist zu kurz, minimal Länge sind %2, eingegeben wurden %1 Zeichen', - validate_length_eq => 'Inhalt des Feldes %0 hat die falsche Länge: Er sollte %2 Zeichen lang sein, ist aber %1 lang', - validate_matches_regex => 'Inhalt "%1" des Feldes %0 entspricht nicht dem regulären Ausdruck /%2/', - validate_matches_regex_js => 'Inhalt "%1" des Feldes %0 entspricht nicht dem regulären Ausdruck /%2/', - validate_not_matches_regex => 'Inhalt "%1" des Feldes %0 darf nicht dem regulären Ausdruck /%2/ entsprechen', - validate_not_matches_regex_js => 'Inhalt "%1" des Feldes %0 darf nicht dem regulären Ausdruck /%2/ entsprechen', - validate_matches_wildcard => 'Inhalt "%1" des Feldes %0 entspricht nicht dem Wildcard-Ausdruck "%2"', - validate_must_only_contain => 'Das Feld %0 darf nur folgende Zeichen enthalten: "%2"', - validate_must_contain_one_of => 'Das Feld %0 muß mindestens eines der folgenden Zeichen enthalten: "%2"', - validate_must_not_contain => 'Das Feld %0 darf folgende Zeichen nicht enthalten: "%2"' + validate_lt => '"%0" muß kleiner als %2 sein', + validate_gt => '"%0" muß größer als %2 sein', + validate_le => '"%0" muß kleiner oder gleich wie %2 sein', + validate_ge => '"%0" muß größer oder gleich %2 sein', + validate_ne => '"%0" muß ungleich %2 sein', + validate_length_max => 'Inhalt des Feldes "%0" ist zu lang, maximale Länge sind %2, eingegeben wurden %1 Zeichen', + validate_length_min => 'Inhalt des Feldes "%0" ist zu kurz, minimal Länge sind %2, eingegeben wurden %1 Zeichen', + validate_length_eq => 'Inhalt des Feldes "%0" hat die falsche Länge: Er sollte %2 Zeichen lang sein, ist aber %1 lang', + validate_matches_regex => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem regulären Ausdruck /%2/', + validate_matches_regex_js => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem regulären Ausdruck /%2/', + validate_not_matches_regex => 'Inhalt "%1" des Feldes "%0" darf nicht dem regulären Ausdruck /%2/ entsprechen', + validate_not_matches_regex_js => 'Inhalt "%1" des Feldes "%0" darf nicht dem regulären Ausdruck /%2/ entsprechen', + validate_matches_wildcard => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem Wildcard-Ausdruck "%2"', + validate_must_only_contain => 'Das Feld "%0" darf nur folgende Zeichen enthalten: "%2"', + validate_must_contain_one_of => 'Das Feld "%0" muß mindestens eines der folgenden Zeichen enthalten: "%2"', + validate_must_not_contain => 'Das Feld "%0" darf folgende Zeichen nicht enthalten: "%2"' }, 'de.utf-8' => @@ -56,45 +56,45 @@ $VERSION = '2.0.0' ; validate_required => 'Bitte Feld "%0" ausfüllen', validate_eq => 'Falscher Inhalt "%1" des Feldes "%0": Erwartet wird "%2"', validate_same => '"%0" stimmt nicht mit "%2" überein', - validate_lt => '%0 muà kleiner als %2 sein', - validate_gt => '%0 muà gröÃer als %2 sein', - validate_le => '%0 muà kleiner oder gleich wie %2 sein', - validate_ge => '%0 muà gröÃer oder gleich %2 sein', - validate_ne => '%0 muà ungleich %2 sein', - validate_length_max => 'Inhalt des Feldes %0 ist zu lang, maximale Länge sind %2, eingegeben wurden %1 Zeichen', - validate_length_min => 'Inhalt des Feldes %0 ist zu kurz, minimal Länge sind %2, eingegeben wurden %1 Zeichen', - validate_length_eq => 'Inhalt des Feldes %0 hat die falsche Länge: Er sollte %2 Zeichen lang sein, ist aber %1 lang', - validate_matches_regex => 'Inhalt "%1" des Feldes %0 entspricht nicht dem regulären Ausdruck /%2/', - validate_matches_regex_js => 'Inhalt "%1" des Feldes %0 entspricht nicht dem regulären Ausdruck /%2/', - validate_not_matches_regex => 'Inhalt "%1" des Feldes %0 darf nicht dem regulären Ausdruck /%2/ entsprechen', - validate_not_matches_regex_js => 'Inhalt "%1" des Feldes %0 darf nicht dem regulären Ausdruck /%2/ entsprechen', - validate_matches_wildcard => 'Inhalt "%1" des Feldes %0 entspricht nicht dem Wildcard-Ausdruck "%2"', - validate_must_only_contain => 'Das Feld %0 darf nur folgende Zeichen enthalten: "%2"', - validate_must_contain_one_of => 'Das Feld %0 muà mindestens eines der folgenden Zeichen enthalten: "%2"', - validate_must_not_contain => 'Das Feld %0 darf folgende Zeichen nicht enthalten: "%2"' + validate_lt => '"%0" muà kleiner als %2 sein', + validate_gt => '"%0" muà gröÃer als %2 sein', + validate_le => '"%0" muà kleiner oder gleich wie %2 sein', + validate_ge => '"%0" muà gröÃer oder gleich %2 sein', + validate_ne => '"%0" muà ungleich %2 sein', + validate_length_max => 'Inhalt des Feldes "%0" ist zu lang, maximale Länge sind %2, eingegeben wurden %1 Zeichen', + validate_length_min => 'Inhalt des Feldes "%0" ist zu kurz, minimal Länge sind %2, eingegeben wurden %1 Zeichen', + validate_length_eq => 'Inhalt des Feldes "%0" hat die falsche Länge: Er sollte %2 Zeichen lang sein, ist aber %1 lang', + validate_matches_regex => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem regulären Ausdruck /%2/', + validate_matches_regex_js => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem regulären Ausdruck /%2/', + validate_not_matches_regex => 'Inhalt "%1" des Feldes "%0" darf nicht dem regulären Ausdruck /%2/ entsprechen', + validate_not_matches_regex_js => 'Inhalt "%1" des Feldes "%0" darf nicht dem regulären Ausdruck /%2/ entsprechen', + validate_matches_wildcard => 'Inhalt "%1" des Feldes "%0" entspricht nicht dem Wildcard-Ausdruck "%2"', + validate_must_only_contain => 'Das Feld "%0" darf nur folgende Zeichen enthalten: "%2"', + validate_must_contain_one_of => 'Das Feld "%0" muà mindestens eines der folgenden Zeichen enthalten: "%2"', + validate_must_not_contain => 'Das Feld "%0" darf folgende Zeichen nicht enthalten: "%2"' }, en => { - validate_required => 'Please enter a value in %0', - validate_eq => 'Wrong content "%1" of field %0: Expected "%2"', + validate_required => 'Please enter a value in "%0"', + validate_eq => 'Wrong content "%1" of field "%0": Expected "%2"', validate_same => '"%0" does not match "%2"', - validate_lt => '%0 must be less then %2', - validate_gt => '%0 must be greater then %2', - validate_le => '%0 must be less or equal then %2', - validate_ge => '%0 must be greater or equal then %2', - validate_ne => 'Wrong content "%1" of field %0: Expected not "%2"', - validate_length_max => 'Content of field %0 is too long, has %1 characters, maximum is %2 characters', - validate_length_min => 'Content of field %0 is too short, has %1 characters, minimum is %2 characters', - validate_length_eq => 'Content of field %0 has wrong length: It is %1 characters long, but should be %2 characters long', - validate_matches_regex => 'Field %0 doesn"t match regexp /%2/', - validate_matches_regex_js => 'Field %0 doesn"t match regexp /%2/', - validate_not_matches_regex => 'Field %0 must not match regexp /%2/', - validate_not_matches_regex_js => 'Field %0 must not match regexp /%2/', - validate_matches_wildcard => 'Field %0 doesn"t match wildcard expression "%2"', - validate_must_only_contain => 'Field %0 must contain only the following characters: "%2"', - validate_must_contain_one_of => 'Field %0 must contain one of the following characters: "%2"', - validate_must_not_contain => 'Field %0 must not contain the following characters: "%2"' + validate_lt => '"%0" must be less then %2', + validate_gt => '"%0" must be greater then %2', + validate_le => '"%0" must be less or equal then %2', + validate_ge => '"%0" must be greater or equal then %2', + validate_ne => 'Wrong content "%1" of field "%0": Expected not "%2"', + validate_length_max => 'Content of field "%0" is too long, has %1 characters, maximum is %2 characters', + validate_length_min => 'Content of field "%0" is too short, has %1 characters, minimum is %2 characters', + validate_length_eq => 'Content of field "%0" has wrong length: It is %1 characters long, but should be %2 characters long', + validate_matches_regex => 'Field "%0" doesn"t match regexp /%2/', + validate_matches_regex_js => 'Field "%0" doesn"t match regexp /%2/', + validate_not_matches_regex => 'Field "%0" must not match regexp /%2/', + validate_not_matches_regex_js => 'Field "%0" must not match regexp /%2/', + validate_matches_wildcard => 'Field "%0" doesn"t match wildcard expression "%2"', + validate_must_only_contain => 'Field "%0" must contain only the following characters: "%2"', + validate_must_contain_one_of => 'Field "%0" must contain one of the following characters: "%2"', + validate_must_not_contain => 'Field "%0" must not contain the following characters: "%2"' } ); Modified: perl/embperl/trunk/Embperl/Form/Validate/Number.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/Number.pm?rev=1661857&r1=1661856&r2=1661857&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/Number.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/Number.pm Tue Feb 24 07:03:07 2015 @@ -27,17 +27,17 @@ my %error_messages = ( de => { - validate_number => '%0 muß eine Zahl sein', + validate_number => '"%0" muß eine Zahl sein', }, 'de.utf-8' => { - validate_number => '%0 muà eine Zahl sein', + validate_number => '"%0" muà eine Zahl sein', }, en => { - validate_number => '%0 must be a number', + validate_number => '"%0" must be a number', } ); Modified: perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm?rev=1661857&r1=1661856&r2=1661857&view=diff ============================================================================== --- perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm (original) +++ perl/embperl/trunk/Embperl/Form/Validate/PosInteger.pm Tue Feb 24 07:03:07 2015 @@ -24,17 +24,17 @@ my %error_messages = ( de => { - validate_pos_number => '%0 muß eine Zahl größer oder gleich Null sein', + validate_pos_number => '"%0" muß eine Zahl größer oder gleich Null sein', }, 'de.utf-8' => { - validate_pos_number => '%0 muà eine Zahl gröÃer oder gleich Null sein', + validate_pos_number => '"%0" muà eine Zahl gröÃer oder gleich Null sein', }, en => { - validate_pos_number => '%0 must be a number greater or equal zero', + validate_pos_number => '"%0" must be a number greater or equal zero', } ); --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-cvs-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-cvs-h...@perl.apache.org