function connectDB() { global $con, $_DB; $con = mysql_connect($_DB['server'], $_DB['username'], $_DB['password']); $source = mysql_select_db($_DB['source'], $con); if (!$con) { debugMsg("db connection error"); } else { debugMsg("db connected"); } if (!$source) { debugMsg("source connection error"); } else { debugMsg("source connected"); } }
/** * Concrete classes must use this method to read the file header * @return bool True if reading the file was successful, false if an error occured or we reached end of archive */ protected function readFileHeader() { // If the current part is over, proceed to the next part please if ($this->isEOF(true)) { $this->nextFile(); } if ($this->expectDataDescriptor) { // The last file had bit 3 of the general purpose bit flag set. This means that we have a // 12 byte data descriptor we need to skip. To make things worse, there might also be a 4 // byte optional data descriptor header (0x08074b50). $junk = @fread($this->fp, 4); $junk = unpack('Vsig', $junk); if ($junk['sig'] == 0x8074b50) { // Yes, there was a signature $junk = @fread($this->fp, 12); if (defined('KSDEBUG')) { debugMsg('Data descriptor (w/ header) skipped at ' . (ftell($this->fp) - 12)); } } else { // No, there was no signature, just read another 8 bytes $junk = @fread($this->fp, 8); if (defined('KSDEBUG')) { debugMsg('Data descriptor (w/out header) skipped at ' . (ftell($this->fp) - 8)); } } // And check for EOF, too if ($this->isEOF(true)) { if (defined('KSDEBUG')) { debugMsg('EOF before reading header'); } $this->nextFile(); } } // Get and decode Local File Header $headerBinary = fread($this->fp, 30); $headerData = unpack('Vsig/C2ver/vbitflag/vcompmethod/vlastmodtime/vlastmoddate/Vcrc/Vcompsize/Vuncomp/vfnamelen/veflen', $headerBinary); // Check signature if (!($headerData['sig'] == 0x4034b50)) { if (defined('KSDEBUG')) { debugMsg('Not a file signature at ' . (ftell($this->fp) - 4)); } // The signature is not the one used for files. Is this a central directory record (i.e. we're done)? if ($headerData['sig'] == 0x2014b50) { if (defined('KSDEBUG')) { debugMsg('EOCD signature at ' . (ftell($this->fp) - 4)); } // End of ZIP file detected. We'll just skip to the end of file... while ($this->nextFile()) { } @fseek($this->fp, 0, SEEK_END); // Go to EOF return false; } else { if (defined('KSDEBUG')) { debugMsg('Invalid signature ' . dechex($headerData['sig']) . ' at ' . ftell($this->fp)); } $this->setError(AKText::_('ERR_CORRUPT_ARCHIVE')); return false; } } // If bit 3 of the bitflag is set, expectDataDescriptor is true $this->expectDataDescriptor = ($headerData['bitflag'] & 4) == 4; $this->fileHeader = new stdClass(); $this->fileHeader->timestamp = 0; // Read the last modified data and time $lastmodtime = $headerData['lastmodtime']; $lastmoddate = $headerData['lastmoddate']; if ($lastmoddate && $lastmodtime) { // ----- Extract time $v_hour = ($lastmodtime & 0xf800) >> 11; $v_minute = ($lastmodtime & 0x7e0) >> 5; $v_seconde = ($lastmodtime & 0x1f) * 2; // ----- Extract date $v_year = (($lastmoddate & 0xfe00) >> 9) + 1980; $v_month = ($lastmoddate & 0x1e0) >> 5; $v_day = $lastmoddate & 0x1f; // ----- Get UNIX date format $this->fileHeader->timestamp = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); } $isBannedFile = false; $this->fileHeader->compressed = $headerData['compsize']; $this->fileHeader->uncompressed = $headerData['uncomp']; $nameFieldLength = $headerData['fnamelen']; $extraFieldLength = $headerData['eflen']; // Read filename field $this->fileHeader->file = fread($this->fp, $nameFieldLength); // Handle file renaming $isRenamed = false; if (is_array($this->renameFiles) && count($this->renameFiles) > 0) { if (array_key_exists($this->fileHeader->file, $this->renameFiles)) { $this->fileHeader->file = $this->renameFiles[$this->fileHeader->file]; $isRenamed = true; } } // Handle directory renaming $isDirRenamed = false; if (is_array($this->renameDirs) && count($this->renameDirs) > 0) { if (array_key_exists(dirname($file), $this->renameDirs)) { $file = rtrim($this->renameDirs[dirname($file)], '/') . '/' . basename($file); $isRenamed = true; $isDirRenamed = true; } } // Read extra field if present if ($extraFieldLength > 0) { $extrafield = fread($this->fp, $extraFieldLength); } if (defined('KSDEBUG')) { debugMsg('*' . ftell($this->fp) . ' IS START OF ' . $this->fileHeader->file . ' (' . $this->fileHeader->compressed . ' bytes)'); } // Decide filetype -- Check for directories $this->fileHeader->type = 'file'; if (strrpos($this->fileHeader->file, '/') == strlen($this->fileHeader->file) - 1) { $this->fileHeader->type = 'dir'; } // Decide filetype -- Check for symbolic links if ($headerData['ver1'] == 10 && $headerData['ver2'] == 3) { $this->fileHeader->type = 'link'; } switch ($headerData['compmethod']) { case 0: $this->fileHeader->compression = 'none'; break; case 8: $this->fileHeader->compression = 'gzip'; break; } // Find hard-coded banned files if (basename($this->fileHeader->file) == "." || basename($this->fileHeader->file) == "..") { $isBannedFile = true; } // Also try to find banned files passed in class configuration if (count($this->skipFiles) > 0 && !$isRenamed) { if (in_array($this->fileHeader->file, $this->skipFiles)) { $isBannedFile = true; } } // If we have a banned file, let's skip it if ($isBannedFile) { // Advance the file pointer, skipping exactly the size of the compressed data $seekleft = $this->fileHeader->compressed; while ($seekleft > 0) { // Ensure that we can seek past archive part boundaries $curSize = @filesize($this->archiveList[$this->currentPartNumber]); $curPos = @ftell($this->fp); $canSeek = $curSize - $curPos; if ($canSeek > $seekleft) { $canSeek = $seekleft; } @fseek($this->fp, $canSeek, SEEK_CUR); $seekleft -= $canSeek; if ($seekleft) { $this->nextFile(); } } $this->currentPartOffset = @ftell($this->fp); $this->runState = AK_STATE_DONE; return true; } // Last chance to prepend a path to the filename if (!empty($this->addPath) && !$isDirRenamed) { $this->fileHeader->file = $this->addPath . $this->fileHeader->file; } // Get the translated path name if ($this->fileHeader->type == 'file') { $this->fileHeader->realFile = $this->postProcEngine->processFilename($this->fileHeader->file); } elseif ($this->fileHeader->type == 'dir') { $this->fileHeader->timestamp = 0; $dir = $this->fileHeader->file; $this->postProcEngine->createDirRecursive($this->fileHeader->file, 0755); $this->postProcEngine->processFilename(null); } else { // Symlink; do not post-process $this->fileHeader->timestamp = 0; $this->postProcEngine->processFilename(null); } $this->createDirectory(); // Header is read $this->runState = AK_STATE_HEADER; return true; }
* */ include_once "header.php"; $classid = $_REQUEST['classid']; $leconid = $_REQUEST['lecon']; echo $leconid; echo "<br>"; echo $classid; // Get Lecture List for class $sql_str = "SELECT ID\r\n\t\t\tFROM lecturetable\r\n\t\t\tWHERE classid = {$classid}"; $lec_result = mysql_query($sql_str); debugMsg($sql_str); // Update Lecture Details while ($row = mysql_fetch_array($lec_result)) { $lecid = $row['ID']; $lecpw = $_REQUEST["lecpw_{$lecid}"]; if ($leconid == $lecid) { $lecon = 1; } else { $lecon = 0; } debugMsg("lecid = {$lecid}; lecpw = {$lecpw} ; lecon = {$lecon};"); $sql_str = "UPDATE lecturetable SET Password='******', \r\n\t\t\t\tActive='{$lecon}' WHERE ID = {$lecid}"; debugMsg($sql_str); if ($result = mysql_query($sql_str)) { debugMsg("DB UPDATE OK"); } else { debugMsg("DB UPDATE ERROR"); } } redirect("displayclass.php?classid={$classid}");
function getTopCreators2($dbw, $cutoff, $start) { global $table, $join, $where, $cond, $andcond; $result = "<ol>"; $sql = "select nap_page from newarticlepatrol left join page on nap_page = page_id where page_namespace = 0\n\t\t\tand nap_timestamp > '{$cutoff}' and nap_timestamp < '{$start}'; "; wfDebug("Dashboard top creators: {$sql}\n"); debugMsg("getting nap {$nap} "); $res = $dbw->query($sql, __METHOD__); $pages = array(); $revisions = array(); while ($row = $dbw->fetchObject($res)) { $pages[] = $row->nap_page; } debugMsg("getting min revisions on pages " . sizeof($pages) . " pages "); $count = 0; foreach ($pages as $page_id) { $revisions[$page_id] = selectField($table, array("min(rev_id)"), array("rev_page" => $page_id)); $count++; if ($count % 100 == 0) { debugMsg("done {$count}"); } } $users = array(); debugMsg("getting users on newly created pages " . sizeof($revisions) . " revisions "); $count = 0; foreach ($revisions as $page_id => $rev_id) { if (empty($rev_id)) { #echo "<!---uh oh: {$page_id} has no min rev!-->"; continue; } $u = selectField($dbw, "select rev_user_text from {$table} where rev_id={$rev_id}"); if (!isset($users[$u])) { $users[$u] = 1; } else { $users[$u]++; } $count++; if ($count % 100 == 0) { debugMsg("done {$count}"); } } debugMsg("sorting " . sizeof($users) . " users"); asort($users, SORT_NUMERIC); $users = array_reverse($users); array_splice($users, 20); $yy = 0; debugMsg("outputting all of this now " . sizeof($users) . " users"); foreach ($users as $u => $c) { $x = User::newFromName($u); $c = nf($c); if (!$x) { $result .= "<li>{$u} - {$c} new articles created</li>\n"; } else { $result .= "<li> " . getUserLink($x) . " - {$c} new articles created" . getUserToolLinks($x) . "</li>\n"; } $yy++; if ($yy == 20) { break; } } $result .= "</ol>"; return $result; }
function hasArrived($pickup, $taxi, $client) { debugMsg("HAS ARIVED"); //TODO Pickup update, cleanup $time = time(); $stime = date("Y-M-d H:i:s"); $sqlStmnt3 = "update pickups set status = 1 completedTime = " . $stime . " where pickupId = " . $pickupId; debugMsg($sqlStmnt3); //$result2 = mysql_query($sqlStmnt3,$conn); createMessage($client, "PICKARR" . $pickup); createMessage($taxi, "PICKARR" . $pickup); //Write app first //notify client //update pickups as success }
public function urlimport($params) { $this->params = $params; // Fetch data $filename = $this->getParam('file'); $frag = $this->getParam('frag', -1); $totalSize = $this->getParam('totalSize', -1); $doneSize = $this->getParam('doneSize', -1); debugMsg('Importing from URL'); debugMsg(' file : ' . $filename); debugMsg(' frag : ' . $frag); debugMsg(' totalSize : ' . $totalSize); debugMsg(' doneSize : ' . $doneSize); // Init retArray $retArray = array("status" => true, "error" => '', "frag" => $frag, "totalSize" => $totalSize, "doneSize" => $doneSize, "percent" => 0); try { AKFactory::set('kickstart.tuning.max_exec_time', '5'); AKFactory::set('kickstart.tuning.run_time_bias', '75'); $timer = new AKCoreTimer(); $start = $timer->getRunningTime(); // Mark the start of this download $break = false; // Don't break the step while ($timer->getTimeLeft() > 0 && !$break) { // Figure out where on Earth to put that file $local_file = KSROOTDIR . '/' . basename($filename); debugMsg("- Importing from {$filename}"); // Do we have to initialize the file? if ($frag == -1) { debugMsg("-- First frag, killing local file"); // Currently downloaded size $doneSize = 0; // Delete and touch the output file @unlink($local_file); $fp = @fopen($local_file, 'wb'); if ($fp !== false) { @fclose($fp); } // Init $frag = 0; } // Calculate from and length $length = 1048576; $from = $frag * $length; $to = $length + $from - 1; //if($from == 0) $from = 1; // Try to download the first frag $temp_file = $local_file . '.tmp'; @unlink($temp_file); $required_time = 1.0; debugMsg("-- Importing frag {$frag}, byte position from/to: {$from} / {$to}"); $filesize = 0; try { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $filename); curl_setopt($ch, CURLOPT_RANGE, "{$from}-{$to}"); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $result = curl_exec($ch); $errno = curl_errno($ch); $errmsg = curl_error($ch); $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($result === false) { $error = "cURL error {$errno}: {$errmsg}"; } elseif ($http_status > 299) { $result = false; $error = "HTTP status {$http_status}"; } else { $result = file_put_contents($temp_file, $result); if ($result === false) { $error = "Could not open temporary file {$temp_file} for writing"; } } curl_close($ch); } catch (Exception $e) { $error = $e->getMessage(); } if (!$result) { @unlink($temp_file); // Failed download if ($frag == 0) { // Failure to download first frag = failure to download. Period. $retArray['status'] = false; $retArray['error'] = $error; debugMsg("-- Download FAILED"); return $retArray; } else { // Since this is a staggered download, consider this normal and finish $frag = -1; debugMsg("-- Import complete"); $doneSize = $totalSize; $break = true; continue; } } // Add the currently downloaded frag to the total size of downloaded files if ($result) { clearstatcache(); $filesize = (int) @filesize($temp_file); debugMsg("-- Successful download of {$filesize} bytes"); $doneSize += $filesize; // Append the file $fp = @fopen($local_file, 'ab'); if ($fp === false) { debugMsg("-- Can't open local file for writing"); // Can't open the file for writing @unlink($temp_file); $retArray['status'] = false; $retArray['error'] = 'Can\'t write to the local file'; return false; } $tf = fopen($temp_file, 'rb'); while (!feof($tf)) { $data = fread($tf, 262144); fwrite($fp, $data); } fclose($tf); fclose($fp); @unlink($temp_file); debugMsg("-- Temporary file merged and removed"); if ($filesize > $length) { debugMsg("-- Read more data than the requested length. I assume this file is complete."); $frag = -1; } else { $frag++; debugMsg("-- Proceeding to next fragment, frag {$frag}"); } } // Advance the frag pointer and mark the end $end = $timer->getRunningTime(); // Do we predict that we have enough time? $required_time = max(1.1 * ($end - $start), $required_time); if ($required_time > 10 - $end + $start) { $break = true; } $start = $end; } if ($frag == -1) { $percent = 100; } elseif ($doneSize <= 0) { $percent = 0; } else { if ($totalSize > 0) { $percent = 100 * ($doneSize / $totalSize); } else { $percent = 0; } } // Update $retArray $retArray = array("status" => true, "error" => '', "frag" => $frag, "totalSize" => $totalSize, "doneSize" => $doneSize, "percent" => $percent); } catch (Exception $e) { debugMsg("EXCEPTION RAISED:"); debugMsg($e->getMessage()); $retArray['status'] = false; $retArray['error'] = $e->getMessage(); } return $retArray; }
function run_tripwire($dir = false) { global $config, $filelist; // If no Directory Specified, Default to the Root of the Site the script is executed under if (!$dir) { $dir = $_SERVER['DOCUMENT_ROOT']; } // If last character is a slash, strip it off the end if (substr($dir, -1) == '/') { $dir = substr($dir, 0, -1); } // If the supplied variable is not a Directory, terminate if (!is_dir($dir)) { debugMsg("Directory '{$dir}' does not exist.\n"); return false; } debugMsg("Checking directory '{$dir}'\n"); $temp = array(); $d = dir($dir); if ($d) { // Loop through the files while (false !== ($entry = $d->read())) { // Full Entry (including Directory) $entry_full = $dir . '/' . $entry; // Debugging debugMsg("<tr><th align='left'>{$entry_full}</th>"); // Symbolic Link - Excluded if (@is_link($entry)) { debugMsg("<td><em>Symbolic Link</em></td></tr>\n"); continue; } // Excluded File/Folder if ($f1 = in_array($entry, $config['exclude']['files']) || in_array($entry_full, $config['exclude']['files'])) { debugMsg("<td><em>Excluded File/Folder (" . array_search(isset($f1) && $f1 ? $entry : $entry_full, $config['exclude']['files']) . ")</em></td></tr>\n"); continue; } // Excluded File Extension if (in_array(pathinfo($entry, PATHINFO_EXTENSION), $config['exclude']['extensions'])) { debugMsg("<td><em>Excluded File Extension (" . array_search(pathinfo($entry, PATHINFO_EXTENSION), $config['exclude']['extensions']) . ")</em></td></tr>\n"); continue; } if (is_dir($dir . '/' . $entry)) { // Recurse debugMsg("<td>Directory - Recursing</td></tr>\n"); $temp = array_merge($temp, run_tripwire($dir . '/' . $entry)); } else { $md5 = @md5_file($dir . '/' . $entry); debugMsg("<td>{$md5}</td></tr>\n"); if (!$md5) { debugMsg("<td><strong>Unreadable. Adding to Unreadable List.</strong></td></tr>\n"); file_put_contents('tripwire_unreadable.txt', "{$dir}/{$entry} - Unreadable\n", FILE_APPEND); } else { $temp[$dir . '/' . $entry] = $md5; } } } } if ($d) { $d->close(); } return $temp; }