Podgląd pliku: / books_opac / includes / validate.php


<?php
/***************************************************** 
 *         System biblioteczny - Modul OPAC          * 
 ***************************************************** 
 * Wersja: 1.2 Stable                                * 
 * Data: 21.08.2010 (13:45)                          * 
 * Autor: Jacek Kowalski (http://jacekk.info)        * 
 *                                                   * 
 * Strona WWW: http://dev.jacekk.net/books           * 
 *                                                   * 
 * Utwor rozprowadzany na licencji                   * 
 * http://creativecommons.org/licenses/by-nc-sa/2.5/ * 
 *****************************************************/

class validate {
    static 
$kod FALSE;
    
    static function 
KOD(&$kod$exists=NULL) {
        if(
ltrim($kod'0123456789')!='' OR strlen($kod)>OR strlen($kod)<1) {
            
error::add('Błędny KOD - dozwolone tylko cyfry');
        }
        
        
$kod str_pad($kod8'0'STR_PAD_LEFT);
        
        if(!
is_null($exists)) {
            if(
$exists!==ksiazki::exists($kod)) {
                
error::add('Wybrana książka 
                '
.($exists 'nie' 'już').' istnieje!');
            }
        }
    }
    
    static function 
EAN($kod) {
        if( 
ltrim($kod'0123456789') != '' OR strlen($kod) != 13 ) {
            
error::add('Błędny ISN - dozwolone tylko cyfry');
        }
        
        if( 
substr($kod, -1) != checksum::EAN(substr($kod0, -1)) ) {
            
error::add('Podany kod ISN jest błędny');
        }
    }
    
    static function 
ISBN(&$kod) {
        
$kod str_replace('-'''strtoupper($kod));
        if( 
ltrim($kod'0123456789X') != '' OR strlen($kod) != 10 ) {
            
error::add('Błędny ISBN - dozwolone tylko cyfry i znak X');
        }
        
        if( 
substr($kod, -1) != checksum::ISBN(substr($kod0, -1)) ) {
            
error::add('Podany ISBN jest błędny');
        }
    }
    
    static function 
ISSN(&$kod) {
        
$kod str_replace('-'''strtoupper($kod));
        if( 
ltrim($kod'0123456789X') != '' OR strlen($kod) != ) {
            
error::add('Błędny ISSN - dozwolone tylko cyfry');
        }
        
        if( 
substr($kod, -1) != checksum::ISSN(substr($kod0, -1)) ) {
            
error::add('Podany ISSN jest błędny');
        }
    }
    
    static function 
MSC(&$kod$polka=NULL$rzad=NULL) {
        
$kod strtoupper($kod);
        
        if(
$polka===NULL) {
            
$polka $_GET['polka'];
        }
        if(
$rzad===NULL) {
            
$rzad $_GET['rzad'];
        }
        
        if(!
ctype_alnum($kod) OR ctype_digit($kod) OR $kod=='' OR strlen($kod)>5) {
            
error::add('Podany kod miejsca (regał) jest błędny');
        }
        if(
$polka!='' AND (!ctype_digit($polka) OR $polka>255)) {
            
error::add('Podany kod miejsca (półka) jest błędny');
        }
        if(
$rzad!='' AND (!ctype_digit($rzad) OR $rzad>255)) {
            
error::add('Podany kod miejsca (rząd) jest błędny');
        }
    }
    
    static function 
type(&$kod) {
        
$kod str_replace('-'''$kod);
        
        switch(
strlen($kod)) {
            case 
13:
                
self::EAN($kod);
                
                if(
substr($kod03)=='978' OR substr($kod03)=='979') {
                    return 
'ISBN';
                }
                elseif(
substr($kod03)=='977') {
                    return 
'ISSN';
                }
            break;
            case 
9:
                if(
self::$kod) {
                    
$kod substr($kod1);
                    
self::ISSN($kod);
                    
$kod convert::ISSN8_to_ISSN13($kod);
                    return 
'ISSN';
                }
            break;
            case 
8:
                if(
self::$kod) {
                    
self::KOD($kod);
                    return 
'KOD';
                }
                else
                {
                    
self::ISSN($kod);
                    
$kod convert::ISSN8_to_ISSN13($kod);
                    return 
'ISSN';
                }
            break;
            case 
10:
                
self::ISBN($kod);
                
$kod convert::ISBN10_to_ISBN13($kod);
                return 
'ISBN';
            break;
            default:
                if(
self::$kod AND ctype_digit($kod)) {
                    
self::KOD($kod);
                    return 
'KOD';
                }
            break;
        }
        
        if(
self::$kod) {
            
self::MSC($kod);
            return 
'MSC';
        }
        
        
error::add('Nieznany typ kodu');
    }
}
?>

Browse Code © 2010 by Jacek Kowalski