Beispiel #1
0
 /**
  * returns instance of the class (Singleton Design Pattern)
  * @return <type>
  */
 public static function get_instance()
 {
     if (!isset(self::$instance)) {
         self::$instance = new ErrorLog();
     }
     return self::$instance;
 }
Beispiel #2
0
 /**
  * 初始化操作
  * @return ErrorLog
  */
 public static function init()
 {
     if (!isset(self::$selfObject)) {
         self::$selfObject = new ErrorLog();
     }
     return self::$selfObject;
 }
 public function loadModel($id)
 {
     $model = ErrorLog::model()->findByPk((int) $id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Beispiel #4
0
 function testErrorLog()
 {
     $this->startCodeCoverage();
     $errorlog = new ErrorLog();
     $errorlog->Clean(7);
     $errorlog->BuildId = "foo";
     if ($errorlog->Insert()) {
         $this->fail("Insert() should return false when BuildId is non-numeric");
         return 1;
     }
     $errorlog->BuildId = 1;
     $errorlog->Description = "example error description";
     $errorlog->Insert();
     $this->pass("Passed");
     $this->stopCodeCoverage();
     return 0;
 }
Beispiel #5
0
 /**
  * @return boolean
  */
 public function undelete()
 {
     try {
         $this->deleted = 0;
         self::db()->update($this->table, array('deleted' => 0), $this->getPrimaryKey());
     } catch (Exception $e) {
         ErrorLog::append($e);
         return false;
     }
     return true;
 }
Beispiel #6
0
 /**
  * Creates new record in Errors log
  * @param $error_category
  * @param $msg
  * @param $errLevel
  */
 public static function createLogRecord($error_category, $msg, $errLevel)
 {
     $errorLog = new ErrorLog();
     $errorLog->Error_DateTime = date("Y-m-d H:i:s");
     if (session_id()) {
         $errorLog->Session_ID = session_id();
     }
     if (isset(Yii::app()->user->userID)) {
         $errorLog->User_Login = Yii::app()->user->userID;
     }
     $errorLog->Application = $_SERVER['HTTP_USER_AGENT'];
     $errorLog->Error_Category = $error_category;
     $errorLog->Error_Msg = $msg;
     $errorLog->LogLevel_Severity = $errLevel;
     $errorLog->save();
 }
Beispiel #7
0
 /** @return InvoiceLog */
 function getInvoiceLog()
 {
     if (!$this->log) {
         $this->log = $this->plugin->getDi()->invoiceLogRecord;
         if ($this->invoice) {
             $this->log->invoice_id = $this->invoice->invoice_id;
             $this->log->user_id = $this->invoice->user_id;
         }
         $this->log->paysys_id = $this->getPlugin()->getId();
         $this->log->remote_addr = $_SERVER['REMOTE_ADDR'];
         foreach ($this->plugin->getConfig() as $k => $v) {
             if (is_scalar($v) && strlen($v) > 4) {
                 $this->log->mask($v);
             }
         }
     }
     return $this->log;
 }
Beispiel #8
0
 /**
  * @return string
  * @param string $action
  */
 public function run($action)
 {
     $class = new ReflectionClass($this);
     $method = Nano_Dispatcher::formatName($action, false);
     $result = null;
     $this->runInit();
     if (false !== $this->runBefore()) {
         try {
             $result = $this->{$method}();
         } catch (Exception $e) {
             ErrorLog::append($e);
             throw $e;
         }
     }
     $this->runAfter();
     if (false === $this->rendered) {
         return $this->render(null, null);
     }
     return $result;
 }
Beispiel #9
0
    if ($ret) {
        $targetProject = $db->fetchAllDatabase();
    } else {
        $targetProject = FALSE;
        ErrorLog::message("DBエラー(対象プロジェクトの取得に失敗しました。)");
    }
    if (!preg_match('/^[1-9][0-9]*$/', $projectId) || $targetProject === FALSE) {
        echo "不正なアクセスです。";
        exit;
    }
    $ret = $db->executeSql($taskSelect, $selectParams);
    if ($ret) {
        $taskList = $db->fetchAllDatabase();
    } else {
        $error[] = 'DBエラー(タスク一覧の取得に失敗しました。)';
        ErrorLog::message("DBエラー(タスク一覧の取得に失敗しました。)");
    }
} else {
}
//-----------------------------------------------smarty
$smarty->template_dir = '../smarty/templates/';
$smarty->compile_dir = '../smarty/templates_c/';
$smarty->config_dir = '../smarty/configs/';
$smarty->cache_dir = '../smarty/cache/';
$smarty->escape_html = true;
// キャッシュ機能の有効化
// $smarty->caching = true;
// エラー
if (count($error) > 0) {
    $smarty->assign('error', $error);
} else {
//---------------------------------------------------------------
// get patient information using information passed. limit 5
//---------------------------------------------------------------
$sql = "SELECT \n\tPDT.id as projectdailytimeid, \n\tprojectid,\n\tDATE_FORMAT(enterdate,'%m/%d/%y') as fenterdate,\n\tPT.name as projectname, CT.name as clientname,\n\tFORMAT(SUM(timeinterval),2) as finterval,\n\tintervaldescription\n\tFROM projectdailytimetbl PDT \n\tLEFT JOIN projecttbl PT ON PT.id = PDT.projectid\n\tLEFT JOIN clienttbl CT ON CT.id = PT.clientid\n\tWHERE enterdate >= '{$fromdateTS}' AND enterdate <= '{$todateTS}'";
if ($clientid != "0") {
    $sql .= "AND clientid = '{$clientid}' ";
}
if ($projectid != "0") {
    $sql .= "AND projectid = '{$projectid}' ";
}
$sql .= "GROUP BY PT.name, enterdate ORDER BY PT.name";
// print $sql;
// die();
$sql_result = @mysql_query($sql, $dbConn);
if (!$sql_result) {
    $log = new ErrorLog("logs/");
    $sqlerr = mysql_error();
    $log->writeLog("SQL error: {$sqlerr} - Error doing get time entry daily project review list select");
    $log->writeLog("SQL: {$sql}");
    $rv = "";
    exit($rv);
}
$count = mysql_num_rows($sql_result);
if ($count > 0) {
    $rows = array();
    while ($row = mysql_fetch_assoc($sql_result)) {
        $results[] = $row;
    }
}
//
// close db connection
Beispiel #11
0
                if (isset($_COOKIE['loginId'])) {
                    setcookie("loginId", '', time() - 1800, '/sonar_todo_app/html/login.php/');
                    setcookie("loginPw", '', time() - 1800, '/sonar_todo_app/html/login.php/');
                }
                if ($kiokuFlag == 1) {
                    setcookie("loginId", $userId, time() + 60 * 60 * 24 * 14, '/sonar_todo_app/html/login.php/');
                    setcookie("loginPw", $userId, time() + 60 * 60 * 24 * 14, '/sonar_todo_app/html/login.php/');
                }
                header('Location: ' . SITE_URL);
                exit;
            } else {
                $error[] = 'IDまたはパスワードが間違っています。';
            }
        } else {
            $error[] = 'DBエラー(ユーザの取得に失敗しました。)';
            ErrorLog::message("DBエラー(ユーザの取得に失敗しました。)");
        }
    }
}
//-----------------------------------------------function
//-----------------------------------------------smarty
$smarty->template_dir = '../smarty/templates/';
$smarty->compile_dir = '../smarty/templates_c/';
$smarty->config_dir = '../smarty/configs/';
$smarty->cache_dir = '../smarty/cache/';
$smarty->escape_html = true;
// キャッシュ機能の有効化
// $smarty->caching = true;
// エラー
if (count($error) > 0) {
    $smarty->assign('error', $error);
    exit($rv);
}
if (!mysql_select_db($DBschema, $dbConn)) {
    $log = new ErrorLog("logs/");
    $dberr = mysql_error();
    $log->writeLog("DB error: {$dberr} - Error selecting db Unable to get client project list.");
    $rv = "";
    exit($rv);
}
//---------------------------------------------------------------
// get patient information using information passed. limit 5
//---------------------------------------------------------------
$sql = "SELECT P.id as projectid, \nP.clientid as clientid, \nP.name as projectname,\nC.name as contactname,\ndeskphone as contactdeskphone,\nmobilephone as contactmobilephone,\nemail as contactemail\nFROM projecttbl P\nLEFT JOIN contactstbl C ON C.id = P.contactid\nWHERE P.clientid = {$clientid}";
$sql_result = @mysql_query($sql, $dbConn);
if (!$sql_result) {
    $log = new ErrorLog("logs/");
    $sqlerr = mysql_error();
    $log->writeLog("SQL error: {$sqlerr} - Error doing get client project list select");
    $log->writeLog("SQL: {$sql}");
    $rv = "";
    exit($rv);
}
$count = mysql_num_rows($sql_result);
if ($count > 0) {
    $rows = array();
    while ($row = mysql_fetch_assoc($sql_result)) {
        $results[] = $row;
    }
}
//
// close db connection
Beispiel #13
0
 /** 
  * Save category in database. 
  * @return ErrorLog containing errors if any. 
  */
 function saveCategory()
 {
     // Initialize ErrorLog object
     $errors = new ErrorLog();
     // Check if user has edit permission
     if ($this->hasEditPermission()) {
         global $dbi, $log;
         global $lCategoryEdit;
         // Check if data is submitted from the form
         checkSubmitter(scriptUrl);
         // Save values
         $this->title = getValue("title");
         $this->description = getValue("description");
         // Validate data
         if (empty($this->title)) {
             $errors->addError("title", $lCategoryEdit["MissingTitle"]);
         } else {
             if (empty($this->id)) {
                 $category = new Category("", $this->title);
                 if (!empty($category->id)) {
                     $errors->addError("title", $lCategoryEdit["CategoryExists"]);
                 }
             }
         }
         if (!$errors->hasErrors()) {
             if (!empty($this->id)) {
                 // Update category in database
                 $dbi->query("UPDATE " . categoryTableName . " SET title=" . $dbi->quote($this->title) . ",description=" . $dbi->quote($this->description) . " WHERE (id=" . $dbi->quote($this->id) . ")");
             } else {
                 // Insert category into database
                 $dbi->query("INSERT INTO " . categoryTableName . "(title,description) VALUES(" . $dbi->quote($this->title) . "," . $dbi->quote($this->description) . ")");
                 // Get insert id
                 $this->id = $dbi->getInsertId();
             }
             // Log transaction
             $log->logTransaction(categoryContentTypeId, $this->id);
         }
     }
     return $errors;
 }
Beispiel #14
0
 protected function usersToObjectRate($dbQuery)
 {
     $database = ComponentDatabase::get_instance();
     $qr = $database->executeQuery($dbQuery);
     $eventsList = $qr->getResponseList();
     //rating objects
     if (!$eventsList) {
         //wrong query
         $errLog = ErrorLog::get_instance();
         $errLog->logError("No events of the specified type found, no prediction made", "Standard");
         return false;
     } else {
         while ($record = $database->getNextRow($eventsList)) {
             if (array_key_exists($record["objectID"], $this->objectToScoreArray)) {
                 $objectRating = $this->objectToScoreArray[$record["objectID"]];
             } else {
                 $objectRating = 0;
             }
             if (is_array($this->users) and array_key_exists($record["userID"], $this->users)) {
                 $userImportance = $this->users[$record["userID"]];
             } else {
                 $userImportance = 0;
             }
             $objectRating = $this->ratingAggregation($objectRating, $record["eventValue"], $record["eventType"], $this->eventImportance, $userImportance);
             $this->objectToScoreArray[$record["objectID"]] = $objectRating;
         }
     }
 }
Beispiel #15
0
<?php

chdir('../');
require 'errorlog.php';
$config = array('writers' => array('syslog' => array('formatter' => array('ALL' => "%timestamp% %errorName% (%errorLevel%): %message%\n"))), 'dump_session_data' => false, 'logLevel' => ErrorLog::DEBUG);
$error = ErrorLog::getInstance($config);
$error->registerExceptionHandler();
$error->warn('This is an informal message', ErrorLog::INFO);
$error->warn('This is a critical message', ErrorLog::CRIT);
function test()
{
    throw new Exception('This is an exception');
}
test();
Beispiel #16
0
 /** 
  * Save blog in database. 
  * @param	$readPost	Read values from post.
  * @return ErrorLog if there were errors.
  */
 function saveBlog($readPost = true)
 {
     // Create ErrorLog object
     $errorLog = new ErrorLog();
     if ($this->hasAdministerPermission()) {
         global $dbi, $log, $login, $module;
         // Check if data is submitted from the form
         checkSubmitter();
         // Include language
         include scriptPath . "/include/language/" . pageLanguage . "/general.php";
         include scriptPath . "/" . folderBlog . "/include/language/" . $this->language . "/general.php";
         // Save values from post
         if ($readPost) {
             $this->category = parseHtml(getPostValue("category"), 0);
             $this->description = parseHtml(getPostValue("description"), 1);
             $this->language = getPostValue("language");
             $this->postLimit = getPostValue("postLimit");
             $this->showRSSLink = getPostValue("showRSSLink");
             $this->showRSSCommentsLink = getPostValue("showRSSCommentsLink");
             $this->subscribers = parseHtml(getPostValue("subscribers"), 0);
             $this->title = parseHtml(getPostValue("title"), 0);
         }
         // Validate data
         if (empty($this->language)) {
             $this->language = pageDefaultLanguage;
         }
         if (empty($this->title)) {
             $errorLog->addError("title", $lBlogEdit["MissingTitle"]);
         } else {
             if (empty($this->id)) {
                 $blog = new Blog("", $this->title);
                 if (!empty($blog->id)) {
                     $errorLog->addError("title", $lBlogEdit["BlogExists"]);
                 }
             }
         }
         // If there were no errors update database
         if (!$errorLog->hasErrors()) {
             if (empty($this->id)) {
                 // Get max position
                 $result = $dbi->query("SELECT MAX(position) FROM " . blogTableName);
                 if ($result->rows()) {
                     list($position) = $result->fetchrow_array();
                     $position++;
                 } else {
                     $position = 0;
                 }
                 // Insert blog into database
                 $dbi->query("INSERT INTO " . blogTableName . "(title,category,description,subscribers,language,postLimit,showRSSLink,showRSSCommentsLink,position) VALUES(" . $dbi->quote($this->title) . "," . $dbi->quote($this->category) . "," . $dbi->quote($this->description) . "," . $dbi->quote($this->subscribers) . "," . $dbi->quote($this->language) . "," . $dbi->quote($this->postLimit) . "," . $dbi->quote($this->showRSSLink) . "," . $dbi->quote($this->showRSSCommentsLink) . "," . $dbi->quote($position) . ")");
                 // Get new blog id
                 $this->id = $dbi->getInsertId();
                 // Set default permissions
                 $login->setModuleContentPermissions(blogContentId, $this->id, "Visitors", 0, 0, 1, 0, 0, 0, 0, 1);
                 $login->setModuleContentPermissions(blogContentId, $this->id, "Users", 0, 0, 1, 0, 0, 0, 0, 1);
             } else {
                 // Update blog in database
                 $dbi->query("UPDATE " . blogTableName . " SET title=" . $dbi->quote($this->title) . ",category=" . $dbi->quote($this->category) . ",description=" . $dbi->quote($this->description) . ",subscribers=" . $dbi->quote($this->subscribers) . ",language=" . $dbi->quote($this->language) . ",postLimit=" . $dbi->quote($this->postLimit) . ",showRSSLink=" . $dbi->quote($this->showRSSLink) . ",showRSSCommentsLink=" . $dbi->quote($this->showRSSCommentsLink) . " WHERE id=" . $dbi->quote($this->id));
             }
             // Upload index picture
             if (!empty($_FILES["img_0"])) {
                 uploadFile($_FILES["img_0"], "blog_" . $this->id, array("image/jpeg", "image/pjpeg", "image/gif"), 0, 50, 50);
             }
             // Log transaction
             $log->logTransaction(blogContentId, $this->id);
         } else {
             if (!empty($_FILES["img_0"]["tmp_name"])) {
                 $errorLog->addError("upload", $lErrors["ReUploadImages"]);
             }
         }
     }
     return $errorLog;
 }
Beispiel #17
0
 public function fail()
 {
     $this->setStatus('failure');
     $this->save();
     $job = $this->getJob();
     $job->set('downloaded_time', date("Y-m-d H:i:s"));
     $job->set('finished_time', date("Y-m-d H:i:s"));
     $job->set('verified_time', date("Y-m-d H:i:s"));
     $job->setStatus('failure');
     $job->save();
     $bot = $this->getBot();
     $bot->reset();
     $log = new ErrorLog();
     $log->set('user_id', User::$me->id);
     $log->set('job_id', $job->id);
     $log->set('bot_id', $bot->id);
     $log->set('queue_id', $job->get('queue_id'));
     $log->set('reason', "Model slicing failed.");
     $log->set('error_date', date("Y-m-d H:i:s"));
     $log->save();
 }
 public static function handle()
 {
     if (!isset(self::$_instance)) {
         $c = __CLASS__;
         self::$_instance = new $c();
     }
     return self::$_instance;
 }
<?php

//-----------------------------------------------define
require_once '../conf/config.php';
require_once './class/utility.php';
require_once './class/db.php';
require_once './class/sql.php';
require_once './class/log.php';
$utl = new Utility();
$db = new DbPdo();
//-----------------------------------------------session
session_name(SESSION_NAME);
session_start();
//-----------------------------------------------login check
if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) {
    header('Location: ' . SITE_URL . 'login.php');
}
//-----------------------------------------------valiables
$projectId = (int) $_POST['projectId'];
$projectMei = $_POST['projectMei'];
//-----------------------------------------------logic
// プロジェクトstatus変更
$db->beginTransaction();
$updateParams = array(array(':project_id', $projectId, PDO::PARAM_INT), array(':project_mei', $projectMei, PDO::PARAM_STR));
$ret = $db->executeSql($projectMeiUpdate, $updateParams);
if ($ret) {
    $db->commit();
} else {
    $db->rollback();
    ErrorLog::message("DBエラー(プロジェクト名変更に失敗しました。)");
}
Beispiel #20
0
 $Project = new Project();
 $role = 0;
 if ($projectid) {
     $project = pdo_query("SELECT name FROM project WHERE id='{$projectid}'");
     if (pdo_num_rows($project) > 0) {
         $project_array = pdo_fetch_array($project);
         $projectname = $project_array["name"];
     }
     $Project->Id = $projectid;
     $role = $Project->GetUserRole($userid);
 } else {
     $projectname = 'Global';
 }
 // If we should delete the log
 if (($User->IsAdmin() || $role > 1) && isset($_POST["deletelogs"])) {
     $ErrorLog = new ErrorLog();
     $ErrorLog->Clean(0, $projectid);
 } else {
     if (isset($_POST["deletelogs"])) {
         echo "You don't have the privileges to delete these logs.";
         exit;
     }
 }
 $xml = begin_XML_for_XSLT();
 $xml .= "<title>Error Log - " . $projectname . "</title>";
 if ($buildid) {
     $xml .= get_cdash_dashboard_xml(get_project_name($projectid), $date);
     // Get the errors
     $query = pdo_query("SELECT resourcetype,date,resourceid,description,type,buildid,projectid\n                     FROM errorlog WHERE projectid=" . qnum($projectid) . " AND buildid=" . qnum($buildid) . " ORDER BY date DESC");
 } else {
     if ($projectid) {
        $sqlerr = mysql_error();
        $log->writeLog("SQL error: {$sqlerr} - Error doing insert client for add/update client details");
        $log->writeLog("SQL: {$sql}");
        $rv = "";
        exit($rv);
    }
    $clientid = mysql_insert_id($dbConn);
} else {
    //--------------------------------------
    // we are an update
    //--------------------------------------
    $sql = "UPDATE clienttbl\n\t\t\tSET name = '{$clientname}', \n\t\t\taddress1 = '{$clientaddress1}', \n\t\t\taddress2 = '{$clientaddress2}',\n\t\t\tcity = '{$clientcity}',\n\t\t\tstate = '{$clientstate}',\n\t\t\tzip = '{$clientzip}',\n\t\t\tstatus = '{$clientstatus}', \n\t\t\trate = '{$clientrate}'\n\t\t\tWHERE id = '{$clientid}'\n\t\t\t";
    // print $sql;
    $sql_result = @mysql_query($sql, $dbConn);
    if (!$sql_result) {
        $log = new ErrorLog("logs/");
        $sqlerr = mysql_error();
        $log->writeLog("SQL error: {$sqlerr} - Error doing update client for add/update client details");
        $log->writeLog("SQL: {$sql}");
        $rv = "";
        exit($rv);
    }
}
//
// close db connection
//
mysql_close($dbConn);
//
// logging
//
// $returnArrayLog->writeLog("Patient List request ended.");
<?php

require_once './common.php';
class ErrorLog extends Common
{
    public function index()
    {
        $this->check();
        $errorLog = isset($_POST['error_log']) ? isset($_POST['error_log']) : '';
        if (!$errorLog) {
            return Response::json(401, "日志为空");
        }
        $sql = "insert into \n\t\t\t\t\terror_log(\n\t\t\t\t\t\t`app_id`,\n\t\t\t\t\t\t`did`,\n\t\t\t\t\t\t`version_id`,\n\t\t\t\t\t\t`version_mini`,\n\t\t\t\t\t\t`error_log`,\n\t\t\t\t\t\t`create_time`)\n\t\t\t\t\tvalues(\n\t\t\t\t\t\t" . $this->params['app_id'] . ",\n\t\t\t\t\t\t'" . $this->params['did'] . "',\n\t\t\t\t\t\t" . $this->params['version_id'] . ",\n\t\t\t\t\t\t" . $this->params['version_mini'] . ",\n\t\t\t\t\t\t'" . $errorLog . "',\n\t\t\t\t\t\t" . time() . "\n\t\t\t\t\t)";
        $connect = Db::getInstance()->connect();
        if (mysql_query($sql, $connect)) {
            return Response::json(200, '错误信息插入成功');
        } else {
            return Response::json(400, '错误信息插入失败');
        }
    }
}
$error = new ErrorLog();
$error->index();
<?php

//-----------------------------------------------define
require_once '../conf/config.php';
require_once './class/utility.php';
require_once './class/db.php';
require_once './class/sql.php';
require_once './class/log.php';
$utl = new Utility();
$db = new DbPdo();
//-----------------------------------------------session
session_name(SESSION_NAME);
session_start();
//-----------------------------------------------login check
if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) {
    header('Location: ' . SITE_URL . 'login.php');
}
//-----------------------------------------------valiables
$status = $_POST['status'];
$taskId = $_POST['taskId'];
$projectId = $_POST['projectId'];
//-----------------------------------------------logic
$db->beginTransaction();
$updateParams = array(array(':status', $status, PDO::PARAM_STR), array(':task_id', $taskId, PDO::PARAM_INT), array(':project_id', $projectId, PDO::PARAM_INT));
$ret = $db->executeSql($taskStatusUpdate, $updateParams);
if ($ret) {
    $db->commit();
} else {
    $db->rollback();
    ErrorLog::message("DBエラー(タスク並び順変更に失敗しました。)");
}
    $log = new ErrorLog("logs/");
    $dberr = mysql_error();
    $log->writeLog("DB error: {$dberr} - Error selecting db Unable to delete daily time entry.");
    $rv = "";
    exit($rv);
}
//---------------------------------------------------------------
// delete daily time entered using information passed.
//---------------------------------------------------------------
$sql = "DELETE FROM projectdailytimetbl\nWHERE id = {$projectdailytimeid}";
// print $sql;
// die();
$rv = "";
$sql_result = @mysql_query($sql, $dbConn);
if (!$sql_result) {
    $log = new ErrorLog("logs/");
    $sqlerr = mysql_error();
    $log->writeLog("SQL error: {$sqlerr} - Error doing delete to daily time");
    $log->writeLog("SQL: {$sql}");
    exit($rv);
}
//
// close db connection
//
mysql_close($dbConn);
//
// logging
//
// $returnArrayLog->writeLog("Patient List request ended.");
//
// pass back info
Beispiel #25
0
 /**
  * returns $noOfObjects of the best objects for users in $usersArray
  * method just pick randomly demanded number of the objects from the allowed ones
  * @param <type> $usersArray array of (userID => similarity) of the selected users
  * @param <type> $noOfObjects number of objects, we search for
  * @param <type> $objectList list of allowed objects
  * @return <type> array( objectID => similarity: 1 ) )
  */
 public function getBestObjectForUsers($usersArray, $noOfObjects, $objectList = "")
 {
     $table = Config::$objectTableName;
     $objectIDName = Config::$objectIDColumnName;
     if (is_array($objectList) and sizeof($objectList) != 0) {
         $objectQuery = " `" . $objectIDName . "` in (";
         $first = 1;
         foreach ($objectList as $obj) {
             if ($first) {
                 $first = 0;
                 $objectQuery .= "" . $obj . "";
             } else {
                 $objectQuery .= ", " . $obj . "";
             }
         }
         $objectQuery .= ")";
     } else {
         $objectQuery = " 1 ";
     }
     $query = "select distinct `" . $objectIDName . "` from `" . $table . "` where " . $objectQuery . " order by RAND() limit " . $noOfObjects . " ";
     //echo $query;
     $database = ComponentDatabase::get_instance();
     $qr = $database->executeQuery($query);
     $objectsList = $qr->getResponseList();
     //packing answer into the array
     if (!$objectsList) {
         //wrong query
         $errLog = ErrorLog::get_instance();
         $errLog->logError("Wrong SQL query, no prediction made", "Dummy");
         return false;
     } else {
         $returnlist = array();
         while ($record = $database->getNextRow($objectsList)) {
             $returnlist[$record[$objectIDName]] = 1;
         }
         return $returnlist;
     }
 }
Beispiel #26
0
/** Add daily changes if necessary */
function addDailyChanges($projectid)
{
    include "cdash/config.php";
    include_once "cdash/common.php";
    include_once "cdash/sendemail.php";
    $db = pdo_connect("{$CDASH_DB_HOST}", "{$CDASH_DB_LOGIN}", "{$CDASH_DB_PASS}");
    pdo_select_db("{$CDASH_DB_NAME}", $db);
    $project_array = pdo_fetch_array(pdo_query("SELECT nightlytime,name,autoremovetimeframe,autoremovemaxbuilds,emailadministrator\n                                              FROM project WHERE id='{$projectid}'"));
    $date = "";
    // now
    list($previousdate, $currentstarttime, $nextdate) = get_dates($date, $project_array["nightlytime"]);
    $date = gmdate(FMT_DATE, $currentstarttime);
    // Check if we already have it somwhere
    $query = pdo_query("SELECT id FROM dailyupdate WHERE projectid='{$projectid}' AND date='{$date}'");
    if (pdo_num_rows($query) == 0) {
        $cvsauthors = array();
        pdo_query("INSERT INTO dailyupdate (projectid,date,command,type,status)\n               VALUES ({$projectid},'{$date}','NA','NA','0')");
        $updateid = pdo_insert_id("dailyupdate");
        $dates = get_related_dates($project_array["nightlytime"], $date);
        $commits = get_repository_commits($projectid, $dates);
        // Insert the commits
        foreach ($commits as $commit) {
            $filename = $commit['directory'] . "/" . $commit['filename'];
            $checkindate = $commit['time'];
            $author = addslashes($commit['author']);
            $email = '';
            if (isset($commit['email'])) {
                $email = addslashes($commit['email']);
            }
            $log = addslashes($commit['comment']);
            $revision = $commit['revision'];
            $priorrevision = $commit['priorrevision'];
            // Check if we have a robot file for this build
            $robot = pdo_query("SELECT authorregex FROM projectrobot\n                  WHERE projectid=" . qnum($projectid) . " AND robotname='" . $author . "'");
            if (pdo_num_rows($robot) > 0) {
                $robot_array = pdo_fetch_array($robot);
                $regex = $robot_array['authorregex'];
                preg_match($regex, $commit['comment'], $matches);
                if (isset($matches[1])) {
                    $author = addslashes($matches[1]);
                }
            }
            if (!in_array(stripslashes($author), $cvsauthors)) {
                $cvsauthors[] = stripslashes($author);
            }
            pdo_query("INSERT INTO dailyupdatefile (dailyupdateid,filename,checkindate,author,email,log,revision,priorrevision)\n                   VALUES ({$updateid},'{$filename}','{$checkindate}','{$author}','{$email}','{$log}','{$revision}','{$priorrevision}')");
            add_last_sql_error("addDailyChanges", $projectid);
        }
        // end foreach commit
        // If the project has the option to send an email to the author
        if ($project_array['emailadministrator']) {
            sendEmailUnregisteredUsers($projectid, $cvsauthors);
        }
        // Send an email if some expected builds have not been submitting
        sendEmailExpectedBuilds($projectid, $currentstarttime);
        // cleanBuildEmail
        cleanBuildEmail();
        cleanUserTemp();
        // If the status of daily update is set to 2 that means we should send an email
        $query = pdo_query("SELECT status FROM dailyupdate WHERE projectid='{$projectid}' AND date='{$date}'");
        $dailyupdate_array = pdo_fetch_array($query);
        $dailyupdate_status = $dailyupdate_array["status"];
        if ($dailyupdate_status == 2) {
            // Find the groupid
            $group_query = pdo_query("SELECT buildid,groupid FROM summaryemail WHERE date='{$date}'");
            while ($group_array = pdo_fetch_array($group_query)) {
                $groupid = $group_array["groupid"];
                $buildid = $group_array["buildid"];
                // Find if the build has any errors
                $builderror = pdo_query("SELECT count(buildid) FROM builderror WHERE buildid='{$buildid}' AND type='0'");
                $builderror_array = pdo_fetch_array($builderror);
                $nbuilderrors = $builderror_array[0];
                // Find if the build has any warnings
                $buildwarning = pdo_query("SELECT count(buildid) FROM builderror WHERE buildid='{$buildid}' AND type='1'");
                $buildwarning_array = pdo_fetch_array($buildwarning);
                $nbuildwarnings = $buildwarning_array[0];
                // Find if the build has any test failings
                if ($project_emailtesttimingchanged) {
                    $sql = "SELECT count(testid) FROM build2test WHERE buildid='{$buildid}' AND (status='failed' OR timestatus>" . qnum($project_testtimemaxstatus) . ")";
                } else {
                    $sql = "SELECT count(testid) FROM build2test WHERE buildid='{$buildid}' AND status='failed'";
                }
                $nfail_array = pdo_fetch_array(pdo_query($sql));
                $nfailingtests = $nfail_array[0];
                sendsummaryemail($projectid, $groupid, $nbuildwarnings, $nbuilderrors, $nfailingtests);
            }
        }
        pdo_query("UPDATE dailyupdate SET status='1' WHERE projectid='{$projectid}' AND date='{$date}'");
        // Remove the old logs
        include_once "models/errorlog.php";
        $ErrorLog = new ErrorLog();
        $ErrorLog->Clean(10);
        // 10 days
        // Clean the backup directory
        clean_backup_directory();
        // Remove the first builds of the project
        include_once "cdash/autoremove.php";
        removeFirstBuilds($projectid, $project_array["autoremovetimeframe"], $project_array["autoremovemaxbuilds"]);
        removeBuildsGroupwise($projectid, $project_array["autoremovemaxbuilds"]);
    }
}
session_name(SESSION_NAME);
session_start();
//-----------------------------------------------login check
if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) {
    header('Location: ' . SITE_URL . 'login.php');
}
//-----------------------------------------------valiables
$projectMei = $_POST['projectMei'];
//-----------------------------------------------logic
// プロジェクトの並び順の最後の値を取得
$ret = $db->executeSql($projectMaxSeqSelect);
if ($ret) {
    $projectMaxSeq = $db->fetchAllDatabase();
    if ($projectMaxSeq[0]['maxSeq'] != NULL) {
        $seq = $projectMaxSeq[0]['maxSeq'];
    } else {
        $seq = 0;
    }
    $db->beginTransaction();
    $insertParams = array(array(':project_mei', $projectMei, PDO::PARAM_STR), array(':seq', $seq, PDO::PARAM_INT));
    $ret = $db->executeSql($projectInsert, $insertParams);
    if ($ret) {
        echo $db->getLastInsertId();
        $db->commit();
    } else {
        $db->rollback();
        ErrorLog::message("DBエラー(プロジェクト追加に失敗しました。)");
    }
} else {
    ErrorLog::message("DBエラー(プロジェクトの並び順の最後の値の取得に失敗しました。)");
}
if ($stoptime != "") {
    $stoptimeTS = date("Y-m-d H:i:s", strtotime($entrydate . " " . $stoptime));
}
//---------------------------------------------------------------
// add daily time entered using information passed.
//---------------------------------------------------------------
$sql = "UPDATE projectdailytimetbl \n\tSET projectid = {$projectid},\t\n\tenterdate ='{$entrydateTS}',\n\tstarttime = '{$starttimeTS}',";
if ($stoptimeTS != "") {
    $sql = $sql . "stoptime = '{$stoptimeTS}',";
}
$sql = $sql . "timeinterval = {$interval},\n\tintervaldescription = '{$comment}'\n\tWHERE id = {$projectdailytimeid}";
// print $sql;
$rv = "";
$sql_result = @mysql_query($sql, $dbConn);
if (!$sql_result) {
    $log = new ErrorLog("logs/");
    $sqlerr = mysql_error();
    $log->writeLog("SQL error: {$sqlerr} - Error doing insert to add daily time");
    $log->writeLog("SQL: {$sql}");
    exit($rv);
}
//
// close db connection
//
mysql_close($dbConn);
//
// logging
//
// $returnArrayLog->writeLog("Patient List request ended.");
//
// pass back info
function vars2globals_wrapper($varlist)
{
    $retval = true;
    if ($varlist != '') {
        $vars = explode(',', $varlist);
        foreach ($vars as $var) {
            if (isset($GLOBALS[$var])) {
                ErrorLog::write('variabe $' . $var . ' already defined in global space!!', __FILE__, __FUNCTION__, __LINE__);
                $retval = false;
            } else {
                global ${$var};
            }
        }
    }
    return $retval;
}
<?php

//-----------------------------------------------define
require_once '../conf/config.php';
require_once './class/utility.php';
require_once './class/db.php';
require_once './class/sql.php';
require_once './class/log.php';
$utl = new Utility();
$db = new DbPdo();
//-----------------------------------------------session
session_name(SESSION_NAME);
session_start();
//-----------------------------------------------login check
if (!isset($_SESSION['loginInfo']) || isset($_SESSION['loginInfo']) && empty($_SESSION['loginInfo'])) {
    header('Location: ' . SITE_URL . 'login.php');
}
//-----------------------------------------------valiables
$taskId = (int) $_POST['taskId'];
$projectId = (int) $_POST['projectId'];
//-----------------------------------------------logic
// タスク削除
$db->beginTransaction();
$deleteParams = array(array(':task_id', $taskId, PDO::PARAM_INT), array(':project_id', $projectId, PDO::PARAM_INT));
$ret = $db->executeSql($taskDelete, $deleteParams);
if ($ret) {
    $db->commit();
} else {
    $db->rollback();
    ErrorLog::message("DBエラー(タスク削除に失敗しました。)");
}