View | Details | Raw Unified | Return to bug 20971
Collapse All | Expand All

(-)a/cataloguing/additem.pl (-5 / +5 lines)
Lines 44-49 use C4::Members; Link Here
44
44
45
use MARC::File::XML;
45
use MARC::File::XML;
46
use URI::Escape;
46
use URI::Escape;
47
use MIME::Base64 qw(decode_base64url encode_base64url);
47
48
48
our $dbh = C4::Context->dbh;
49
our $dbh = C4::Context->dbh;
49
50
Lines 467-473 my $cookieitemrecord; Link Here
467
if ($prefillitem) {
468
if ($prefillitem) {
468
    my $lastitemcookie = $input->cookie('LastCreatedItem');
469
    my $lastitemcookie = $input->cookie('LastCreatedItem');
469
    if ($lastitemcookie) {
470
    if ($lastitemcookie) {
470
        $lastitemcookie = uri_unescape($lastitemcookie);
471
        $lastitemcookie = decode_base64url($lastitemcookie);
471
        eval {
472
        eval {
472
            if ( thaw($lastitemcookie) ) {
473
            if ( thaw($lastitemcookie) ) {
473
                $cookieitemrecord = thaw($lastitemcookie);
474
                $cookieitemrecord = thaw($lastitemcookie);
Lines 476-482 if ($prefillitem) { Link Here
476
        };
477
        };
477
        if ($@) {
478
        if ($@) {
478
            $lastitemcookie = 'undef' unless $lastitemcookie;
479
            $lastitemcookie = 'undef' unless $lastitemcookie;
479
            warn "Storable::thaw failed to thaw LastCreatedItem-cookie. Cookie value '$lastitemcookie'. Caught error follows: '$@'";
480
            warn "Storable::thaw failed to thaw LastCreatedItem-cookie. Cookie value '".encode_base64url($lastitemcookie)."'. Caught error follows: '$@'";
480
        }
481
        }
481
    }
482
    }
482
}
483
}
Lines 532-539 if ($op eq "additem") { Link Here
532
            if ($prefillitem && defined $record) {
533
            if ($prefillitem && defined $record) {
533
                my $itemcookie = $input->cookie(
534
                my $itemcookie = $input->cookie(
534
                    -name => 'LastCreatedItem',
535
                    -name => 'LastCreatedItem',
535
                    # We uri_escape the whole freezed structure so we're sure we won't have any encoding problems
536
                    # We encode_base64url the whole freezed structure so we're sure we won't have any encoding problems
536
                    -value   => uri_escape_utf8( freeze( $record ) ),
537
                    -value   => encode_base64url( freeze( $record ) ),
537
                    -HttpOnly => 1,
538
                    -HttpOnly => 1,
538
                    -expires => ''
539
                    -expires => ''
539
                );
540
                );
540
- 

Return to bug 20971