
 r_koike - 2010-05-14 09:58:26
ONE:
_ean13CheckDigit() has bug??
input:
 $barnumber = '123456789012'; //12 charactors.
output:
 incorrect: '0123456789012'; //add no $checksumDigit, and '0' padding.
 correct:   '1234567890128'; //inputs plus $checksumDigit='8' .
patch:
========================================================
1559c1559
<                        if(strlen($barnumber) <= 11 )
---
>                        if(strlen($barnumber) <= 12 )
1561c1561
<                               $barnumber = str_pad($barnumber, 12, "0", STR_PAD_LEFT);
---
>                               $barnumber = str_pad($barnumber, 13, "0", STR_PAD_LEFT);
1579,1591c1579,1583
<                        if(strlen($barnumber) <= 12 )
<                         {
<                                if( $csumTotal % 10 == 0 )
<                                       $checksumDigit = '';
<                                else
<                                       $checksumDigit = 10 - ($csumTotal % 10);
<                               $barnumber .= $checksumDigit;
<                         }
<                        if(strlen($barnumber) <= 12 )
<                         {
<                               $barnumber = str_pad($barnumber, 13, "0", STR_PAD_LEFT);
<                         }
<                        return $barnumber;
---
>                        if( $csumTotal % 10 == 0 )
>                               $checksumDigit = '';
>                        else
>                               $checksumDigit = 10 - ($csumTotal % 10);
>                        return $barnumber.$checksumDigit;
========================================================
TWO:
Notice: Undefined variable: space in /path/to/barcode.inc.php on line 1669
========================================================
1669c1661
<                       if (empty($space))
---
>                       if (!$space)
========================================================