Fixed invalid test for the existence of CGI parameter; if it
is possible that the value of a parameter can be 0, it is
not sufficient to test like this:
if ($input->param('foo')) { ...
since the test will fail for *any* value that evaluates
to Perl false.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
my $value;
# handle multiple value strings (separated by ',')
my $params = $input->Vars;
- my @values = ();
- @values = split("\0",$params->{'value'}) if $params->{'value'};
- for my $vl (@values) {
- $value .= "$vl,";
+ if (defined $params->{'value'}) {
+ my @values = ();
+ @values = split("\0",$params->{'value'}) if defined($params->{'value'});
+ if (@values) {
+ $value = "";
+ for my $vl (@values) {
+ $value .= "$vl,";
+ }
+ $value =~ s/,$//;
+ } else {
+ $value = $params->{'value'};
+ }
}
- $value =~ s/,$//;
if ($sth->rows) {
unless (C4::Context->config('demo')) {
my $sth=$dbh->prepare("update systempreferences set value=?,explanation=?,type=?,options=? where variable=?");