# Print Release System
# (c) 2009 Toby Norden and Steven Brewer
include("config.php");
session_start() or die("There was an error. Please try again.");
if(!isset($_SESSION["id"]) || (!in_array ($_SESSION["username"], $adminuser)) || (!isset($_REQUEST["cp"]))) {
unset($_POST);
unset($_SESSION);
header("Location: index.php");
}
include("header.inc");
#$link = mysqli_connect("$dbhost", "$dbuser", "$dbpasswd");
#$db_selected = mysqli_select_db("$db", $link);
$cp = $_REQUEST['cp'];
$printer = $printers[$cp];
$juid = $_REQUEST["juid"];
$job = $_REQUEST["job"];
echo "\n\n
Print Queue\n";
echo "Control Queue for \"$printer\"
\n";
$action = $_REQUEST["action"];
if($action == "canceljob") {
#get printer name from directory
#$printer = dirname($SCRIPT_NAME);
#$printer = preg_replace("\/", "", $printer);
#check for empty variables
if(($job=="") || ($printer=="")) {
echo "Error
\n";
}
else {
#check to make sure only correct jobs get passed
$job1 = EscapeShellCmd($job);
$job2 = strstr($job1, "-");
$job3 = preg_replace("/\-/", "",$job2);
#check to make sure job number only has numbers
if ((preg_match( "/[^0-9]/", $job3)) || ($job3=="")) {
echo "Error
\n";
}
else {
$job4 = "$printer"."-"."$job3";
echo "
Canceling Job $job4 on $printer
\n";
echo "The result was:";
#These paths may need to be fixed on other systems
passthru("$cancel $job4");
}
}
}
if($action == "canceluid") {
#check for empty variables
if(($juid=="") || ($printer=="")) {
echo "Error
\n";
}
else {
#escape shell commands
$sjuid = EscapeShellCmd($juid);
echo "Canceling Jobs on $printer owned by $sjuid
\n";
echo "The result was:";
#These paths may need to be fixed on other systems
passthru("$cancel -u $sjuid $printer");
}
}
if($action == "disable") {
echo "Disabling $printer
\n";
echo "The result was:";
#These paths may need to be fixed on other systems
passthru("$disable $printer");
}
if($action == "enable") {
echo "Enabling $printer
\n";
echo "The result was:";
#These paths may need to be fixed on other systems
passthru("$enable $printer");
}
$time = date("h:ia");
echo "\n";
echo "$printer Queues at $time";
echo " |
";
echo "Job Number Username Size Queued\n";
echo " ";
# we open lpstat
exec("lpstat -o $printer", $data);
$i = 0;
$k=0;
$list = count($data);
#we tear each line of data apart to get arrays of jobs and users
while($i<$list):
echo "$data[$i]\n";
$data[$i] = preg_replace("/ +/", " ", "$data[$i]");
$bits = explode(" ",$data[$i]);
#echo "$bits\n";
$jobs[$i] = $bits[0];
if($check[$bits[1]]<1):
$users[$k] = $bits[1];
#echo "$users[$k]\n";
$check[$bits[1]] = 1;
$k++;
endif;
$i++;
endwhile;
echo "
\n";
echo " |
\n";
echo "$printer Status |
";
passthru("lpstat -p $printer");
echo " \n";
echo " |
Refresh View of $printer";
?>
| |
|
|
echo " |
Disable $printer";
?>
| |
|
|
|
Cancel by Job Number
| |
include("footer.inc"); ?>