Podgląd pliku: / books / includes / validate.php
<?php
/*****************************************************
* System biblioteczny *
*****************************************************
* Wersja: 1.3 Stable *
* Data: 17.06.2012 (15:07) *
* Autor: Jacek Kowalski (http://jacekk.info) *
* *
* 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