Skip to content

Commit

Permalink
Bug 8953 - opac-userupdate encoding issues
Browse files Browse the repository at this point in the history
This script has various encoding problems:

1. parametars from CGI are not encoded in utf-8, so when they are
   compared with utf-8 strings from database every field with
   utf-8 characters will be reported in e-mail as changed
2. when sending e-mail, wide characters are passed to Mail::Sendmail
   which results in software error if edited field has utf-8 characters
   (because of first point, this happend if ANY fields has utf-8 chars)
3. when declaring encoding for outgoing e-mail utf-8 is more correct
   than just utf8

Test scenario:

1. open opac-userupdate and edit user which has utf-8 characters in
   at least one field (firstname and surname are common examples)
2. edit one of other fields and add utf-8 character to it
3. verify that e-mail with changes arrived with just edited field

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
  • Loading branch information
dpavlin authored and PaulPoulain committed Oct 24, 2012
1 parent 2b72cc9 commit ca8f897
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions opac/opac-userupdate.pl
Expand Up @@ -22,6 +22,7 @@

use CGI;
use Mail::Sendmail;
use Encode;

use C4::Auth; # checkauth, getborrowernumber.
use C4::Context;
Expand Down Expand Up @@ -102,7 +103,7 @@
my $B_address2 = $borr->{'B_address2'} || '';

foreach my $field (@fields) {
my $newfield = $query->param($field) || '';
my $newfield = decode('utf-8',$query->param($field)) || '';
my $borrowerfield = '';
if($borr->{$field}) {
$borrowerfield = $borr->{$field};
Expand All @@ -124,8 +125,8 @@
To => $updateemailaddress,
From => $patronemail,
Subject => "User Request for update of Record.",
Message => $message,
'Content-Type' => 'text/plain; charset="utf8"',
Message => encode('utf-8', $message), # Mail::Sendmail doesn't like wide characters
'Content-Type' => 'text/plain; charset="utf-8"',
);

if ( sendmail %mail ) {
Expand Down

0 comments on commit ca8f897

Please sign in to comment.