Mailing List Archive

svn commit: r1661857 - in /perl/embperl/trunk/Embperl/Form: Validate.pm Validate/Default.pm Validate/Number.pm Validate/PosInteger.pm
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-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org