
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)>8 OR strlen($kod)<1) { error::add('Błędny KOD - dozwolone tylko cyfry'); } $kod = str_pad($kod, 8, '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($kod, 0, -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($kod, 0, -1)) ) { error::add('Podany ISBN jest błędny'); } } static function ISSN(&$kod) { $kod = str_replace('-', '', strtoupper($kod)); if( ltrim($kod, '0123456789X') != '' OR strlen($kod) != 8 ) { error::add('Błędny ISSN - dozwolone tylko cyfry'); } if( substr($kod, -1) != checksum::ISSN(substr($kod, 0, -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($kod, 0, 3)=='978' OR substr($kod, 0, 3)=='979') { return 'ISBN'; } elseif(substr($kod, 0, 3)=='977') { return 'ISSN'; } break; case 9: if(self::$kod) { $kod = substr($kod, 1); 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