From f93fbcb9caad76ee6c024c794aed030857970b4c Mon Sep 17 00:00:00 2001 From: robbat2 Date: Wed, 7 May 2003 19:57:20 +0000 Subject: [PATCH] Updated ver --- insert.php => addedit.php | 4 ++-- gui/array.lib.php | 10 +++++----- gui/html.lib.php | 14 ++++++++----- gui/login.inc.php | 17 ++++++++++++++-- header.inc.php | 6 ++++-- index.php | 3 +-- kiosk.php | 33 +++++++++++++++++------------- lib/MySQL.php | 18 ++++++++++------- lib/Obj/Actions.php | 6 +++--- lib/Obj/CheckOuts.php | 42 +++++++++++++++++++-------------------- lib/Obj/Objects.php | 8 +++++++- lib/Obj/Transactions.php | 12 +++++------ lib/Obj/Users.php | 7 ++++++- lib/admin.lib.php | 10 +++++++++- validate.php | 16 +++++++++++++++ 15 files changed, 134 insertions(+), 72 deletions(-) rename insert.php => addedit.php (61%) create mode 100644 validate.php diff --git a/insert.php b/addedit.php similarity index 61% rename from insert.php rename to addedit.php index 734052d..e78f1e7 100644 --- a/insert.php +++ b/addedit.php @@ -1,6 +1,6 @@ 'text' - $activevalue = v($name); - $innerdata = ""; - foreach($data as $value => $text) { + if($default == '') { + $activevalue = v($name); + } else { + $activevalue = $default; + } + $innerdata = ''; + foreach($data as $value => $text) { $innerdata .= htmlElm('option', array('value' => $value, 'selected' =>($activevalue == $value ? 'selected' : '')), diff --git a/gui/login.inc.php b/gui/login.inc.php index dbfa5cd..99878b6 100644 --- a/gui/login.inc.php +++ b/gui/login.inc.php @@ -1,8 +1,8 @@ -
+ + + + + + + +
@@ -24,6 +24,18 @@ ?>
+ + +'Normal','kiosk'=>'Kiosk'),'normal'); +?> +
diff --git a/index.php b/index.php index 900a278..3d0244e 100644 --- a/index.php +++ b/index.php @@ -1,12 +1,11 @@ add(100,'Actions','1','1'); $t->add(101,'Users','2','2'); $s = $t->generateSQL(); - echo $s; */ if(isset($_POST['text'])) { @@ -19,10 +18,12 @@ if($m == 'checkin') { foreach($arr as $line) { $line = trim($line); - if(isObject($line)) { - $_CheckOuts->checkin($line); - } else { - echo 'Invalid barcode: '.$line.'
'; + if($line != '') { + if(isObject($line)) { + $_CheckOuts->checkin($line); + } else { + echo 'Invalid barcode: "'.$line.'"
'; + } } } } else if($m == 'checkout') { @@ -30,10 +31,12 @@ if(isUser($user)) { foreach($arr as $line) { $line = trim($line); - if(isObject($line)) { - $_CheckOuts->checkout($user,$line); - } else { - echo 'Invalid barcode: '.$line.'
'; + if($line != '') { + if(isObject($line)) { + $_CheckOuts->checkout($user,$line); + } else { + echo 'Invalid barcode: "'.$line.'"
'; + } } } } else { @@ -43,9 +46,9 @@ } +echo html_a('logout.php','Logout','leftnavitem','target="_top"')."\n"; ?> - -
+
- + diff --git a/lib/MySQL.php b/lib/MySQL.php index 2db84ba..3c905b7 100644 --- a/lib/MySQL.php +++ b/lib/MySQL.php @@ -1,5 +1,5 @@ getResult()); + $num = @mysql_num_rows($this->getResult()); $this->checkerror(); return $num; } @@ -219,7 +219,7 @@ function MySQL_escape($str) { return mysql_real_escape_string($str); } -function MySQL_arrayToSequence($arr,$brackets = TRUE) { +function MySQL_arrayToSequence($arr,$brackets = TRUE, $escape = TRUE) { $size = count($arr); $s = ''; if($size > 0) { @@ -227,7 +227,11 @@ function MySQL_arrayToSequence($arr,$brackets = TRUE) { $s .= '('; } for($i = 0; $i < $size; $i++) { - $s .= MySQL_quote($arr[$i]); + if($escape) { + $s .= MySQL_quote($arr[$i]); + } else { + $s .= $arr[$i]; + } if($i+1 < $size) { $s .= ','; } diff --git a/lib/Obj/Actions.php b/lib/Obj/Actions.php index a9dc5d3..a9867ef 100644 --- a/lib/Obj/Actions.php +++ b/lib/Obj/Actions.php @@ -1,5 +1,5 @@ start(); @@ -25,43 +26,42 @@ function checkin($barcode) { } function checkout($usercode,$barcode) { + global $MySQL_singleton_abort; global $_MySQL_trans, $_Transactions; $bad = false; $oid = MySQL_singleton( 'SELECT ObjectID FROM Objects WHERE ObjectBarcode = '.MySQL_quote($barcode)); - if($oid == -1) { + if($oid == $MySQL_singleton_abort) { echo('Item unknown'); $bad = true; } - $oid = MySQL_quote($oid); $uid = MySQL_singleton( 'SELECT UserID FROM Users WHERE UserBarcode = '.MySQL_quote($usercode)); - if($uid == -1) { + if($uid == $MySQL_singleton_abort) { echo('User unknown'); $bad = true; } - $coid = MySQL_singleton('SELECT CheckOutID FROM CheckOuts WHERE ObjectID='.$oid); - if($coid != 0) { - echo('Item is already out, checkin first'); + $coid = MySQL_singleton('SELECT CheckOutID FROM CheckOuts WHERE ObjectID='.MySQL_quote($oid)); + if($coid != $MySQL_singleton_abort) { + echo('Item is already out, checkin first ('.$coid.')'); $bad = true; } - $uid = MySQL_quote($uid); if(!$bad) { $_MySQL_trans->start(); //$_MySQL_trans->run("SELECT @duration := ObjectTypeLoanDuration FROM Objects LEFT JOIN ObjectTypes USING (ObjectTypeID) WHERE ObjectID=".$oid); //$_MySQL_trans->run("SELECT @year:=EXTRACT(YEAR FROM @duration), @month:=EXTRACT(MONTH FROM @duration), @day:=EXTRACT(DAY FROM @duration), @hour:=EXTRACT(HOUR FROM @duration), @minute:=EXTRACT(MINUTE FROM @duration), @second:=EXTRACT(SECOND FROM @duration)"); //$_MySQL_trans->run("SELECT @duration:=CONCAT(@year*365+@month*30+@day,SUBSTRING(@duration,LOCATE(' ',@duration)))"); // $_MySQL_trans->run("SELECT @duedate:=DATE_ADD(NOW(),INTERVAL @duration DAY_SECOND);"); - - $_MySQL_trans->run('SELECT @duedate:=(((((((NOW() + INTERVAL - EXTRACT(YEAR FROM ObjectTypeLoanDuration) YEAR) + INTERVAL - EXTRACT(MONTH FROM ObjectTypeLoanDuration) MONTH) + INTERVAL - EXTRACT(DAY FROM ObjectTypeLoanDuration) DAY) + INTERVAL - EXTRACT(HOUR FROM ObjectTypeLoanDuration) HOUR) + INTERVAL - EXTRACT(MINUTE FROM ObjectTypeLoanDuration) MINUTE) + INTERVAL - EXTRACT(SECOND FROM ObjectTypeLoanDuration) SECOND)) FROM Objects - LEFT JOIN ObjectTypes USING (ObjectTypeID) WHERE - ObjectID='.MySQL_quote($oid).';'); - - $_MySQL_trans->run('INSERT CheckOuts (UserID,ObjectID,CheckOutDueDate) VALUES '.MySQL_arrayToSequence(array($uid,$oid,'@duedate'))); + + $query1 = 'SELECT @duedate:=(((((((NOW() + INTERVAL EXTRACT(YEAR FROM + ObjectTypeLoanDuration) YEAR) + INTERVAL EXTRACT(MONTH FROM + ObjectTypeLoanDuration) MONTH) + INTERVAL EXTRACT(DAY FROM + ObjectTypeLoanDuration) DAY) + INTERVAL EXTRACT(HOUR FROM + ObjectTypeLoanDuration) HOUR) + INTERVAL EXTRACT(MINUTE FROM + ObjectTypeLoanDuration) MINUTE) + INTERVAL EXTRACT(SECOND FROM + ObjectTypeLoanDuration) SECOND)) FROM Objects LEFT JOIN ObjectTypes + USING (ObjectTypeID) WHERE ObjectID='.MySQL_quote($oid).';'; + $query2 = 'INSERT CheckOuts (UserID,ObjectID,CheckOutDueDate) VALUES '.MySQL_arrayToSequence(array(MySQL_quote($uid),MySQL_quote($oid),'@duedate'),TRUE,FALSE); + $_MySQL_trans->run($query1); + $_MySQL_trans->run($query2); $_MySQL_trans->run($_Transactions->singleton(0,'aC','LAST_INSERT_ID()')); $_MySQL_trans->execute(); echo('Item now checked out'); diff --git a/lib/Obj/Objects.php b/lib/Obj/Objects.php index 64a3cb3..2971641 100644 --- a/lib/Obj/Objects.php +++ b/lib/Obj/Objects.php @@ -1,5 +1,5 @@ barcode = $newbarcode; } + function exists($barcode) { + global $MySQL_singleton_abort; + $query = 'SELECT ObjectID FROM Objects WHERE ObjectBarcode='.MySQL_quote($barcode); + $val = MySQL_singleton($query); + return $val != $MySQL_singleton_abort; + } } /* vim: set ft=php expandtab shiftwidth=4 softtabstop=4 tabstop=4: */ diff --git a/lib/Obj/Transactions.php b/lib/Obj/Transactions.php index 3268484..1ad868d 100644 --- a/lib/Obj/Transactions.php +++ b/lib/Obj/Transactions.php @@ -1,5 +1,5 @@ lookup($ActionCode); + $arr = $_Actions->getID_code($ActionCode); $ActionID = $arr[0]; $GenericTable = $arr[1]; - $this->addcomplex($UserID,MySQL_quote($GenericTable),$GenericID,$ActionID); + $this->addcomplex($UserID,$GenericID,$ActionID); } - function addcomplex($UserID,$GenericTable,$GenericID,$ActionID) { - $tmp = array($UserID,$GenericTable,$GenericID,$ActionID); + function addcomplex($UserID,$GenericID,$ActionID) { + $tmp = array($UserID,$GenericID,$ActionID); $this->actionbuffer->addLast($tmp); } function generateSQL() { $size = $this->actionbuffer->getSize(); $query = ''; if($size > 0) { - $query = 'INSERT INTO Transactions (UserID,GenericTable,GenericID,ActionID) VALUES '; + $query = 'INSERT INTO Transactions (UserID,GenericID,ActionID) VALUES '; for($i = 0; $i < $size; $i++) { $data = $this->actionbuffer->removeFirst(); $query .= MySQL_arrayToSequence($data); diff --git a/lib/Obj/Users.php b/lib/Obj/Users.php index 6790288..c10a7f5 100644 --- a/lib/Obj/Users.php +++ b/lib/Obj/Users.php @@ -1,5 +1,5 @@ getGroupActionTable($groups,$table); } +function httpredirect($page='',$opts='',$host='') { + if($host == '') { + $host = $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'; + } + header('Location: http://'.$host.$page.$opts); + exit; +} + /* vim: set ft=php expandtab shiftwidth=4 softtabstop=4 tabstop=4: */ ?> diff --git a/validate.php b/validate.php new file mode 100644 index 0000000..a0e4037 --- /dev/null +++ b/validate.php @@ -0,0 +1,16 @@ +