Beispiel #1
0
<?php

ignore_user_abort(true);
checkArgs(array('userSharingWith'));
$query = "DELETE FROM share WHERE owner = ? AND sharedWith = ?";
$stmt = mysqli_stmt_init($con);
$stmt->prepare($query);
$stmt->bind_param('ss', $_SESSION['email'], $_POST['userSharingWith']);
$stmt->execute();
$resultSql = $stmt->get_result();
echo json_encode(array('type' => 'success'));
Beispiel #2
0
<?php

ignore_user_abort(true);
checkArgs(array('check1', 'check2', 'check3', 'check4', 'check5', 'drop1', 'drop2', 'day', 'notes'));
//Prepare variables
for ($i = 1; $i <= 5; $i++) {
    $_POST['check' . $i] == 'true' ? $_POST['check' . $i] = 1 : ($_POST['check' . $i] = 0);
}
$_POST['notes'] = $_POST['notes'] == '' ? 'None' : $_POST['notes'];
//urlDecode these
$_POST['day'] = urldecode($_POST['day']);
$_POST['notes'] = urldecode($_POST['notes']);
//Make sure old entry doesn't exist
$query = "SELECT * FROM log WHERE day = ? AND owner = ?";
$stmt = mysqli_stmt_init($con);
$stmt->prepare($query);
$stmt->bind_param('ss', $_POST['day'], $_SESSION['email']);
$stmt->execute();
$resultSql = $stmt->get_result();
if ($resultSql->num_rows != 0) {
    echo json_encode(array('type' => 'danger', 'msg' => 'A mood has already been set for that hour.'));
    die;
}
//Enter new entry
$query = "INSERT INTO log (day, notes, check1, check2, check3, check4, check5, drop1, drop2, owner) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
$stmt = mysqli_stmt_init($con);
$stmt->prepare($query);
$stmt->bind_param('ssiiiiiiis', $_POST['day'], $_POST['notes'], $_POST['check1'], $_POST['check2'], $_POST['check3'], $_POST['check4'], $_POST['check5'], $_POST['drop1'], $_POST['drop2'], $_SESSION['email']);
$stmt->execute();
$result = array('type' => 'success', 'msg' => 'Successfully updated log!');
echo json_encode($result);
Beispiel #3
0
function main()
{
    // Check Env
    CommandLineUtils::checkRequiredExtentions();
    // Options
    $helpOpt = new Option(null, 'help');
    $helpOpt->setDescription('Print usage information.');
    $zookeeper_connectOpt = new Option(null, 'zookeeper_connect', Getopt::REQUIRED_ARGUMENT);
    $zookeeper_connectOpt->setDescription('REQUIRED: 
                          The connection string for the zookeeper connection in the form
                          "host1:port1,host2:port2,host3:port3/chroot/path", The "/chroot/path" of connection string 
                          *MUST* be the same as of the kafka server. Multiple URLS can be given to allow fail-over.');
    $createOpt = new Option(null, 'create');
    $createOpt->setDescription('Create a new config.');
    $deleteOpt = new Option(null, 'delete');
    $deleteOpt->setDescription('Delete a config');
    $listOpt = new Option(null, 'list');
    $listOpt->setDescription('List all available configs.');
    $monitorOpt = new Option(null, 'monitor');
    $monitorOpt->setDescription('Monitor all available configs.');
    $logkafka_idOpt = new Option(null, 'logkafka_id', Getopt::REQUIRED_ARGUMENT);
    $logkafka_idOpt->setDescription('The logkafka_id which holds log files');
    $logkafka_idOpt->setValidation(function ($value) {
        $ret = AdminUtils::isLogkafkaIdValid($value);
        return $ret['valid'];
    });
    $log_pathOpt = new Option(null, 'log_path', Getopt::REQUIRED_ARGUMENT);
    $log_pathOpt->setDescription('The log file path, like "/usr/local/apache2/logs/access_log.%Y%m%d"');
    $log_pathOpt->setValidation(function ($value) {
        $ret = AdminUtils::isFilePathValid($value);
        return $ret['valid'];
    });
    $topicOpt = new Option(null, 'topic', Getopt::REQUIRED_ARGUMENT);
    $topicOpt->setDescription('The topic of messages to be sent.');
    $topicOpt->setValidation(function ($value) {
        return AdminUtils::isTopicValid($value);
    });
    $partitionOpt = new Option(null, 'partition', Getopt::REQUIRED_ARGUMENT);
    $partitionOpt->setDescription('The partition of messages to be sent.' . '-1 : random' . 'n(>=0): partition n');
    $partitionOpt->setDefaultValue('-1');
    $partitionOpt->setValidation(function ($value) {
        return is_numeric($value);
    });
    $keyOpt = new Option(null, 'key', Getopt::REQUIRED_ARGUMENT);
    $keyOpt->setDescription('The key of messages to be sent.');
    $keyOpt->setDefaultValue('');
    $keyOpt->setValidation(function ($value) {
        return is_string($value);
    });
    $requiredAcksOpt = new Option(null, 'required_acks', Getopt::REQUIRED_ARGUMENT);
    $requiredAcksOpt->setDescription('Required ack number');
    $requiredAcksOpt->setDefaultValue('1');
    $requiredAcksOpt->setValidation(function ($value) {
        return is_numeric($value);
    });
    $compression_codecOpt = new Option(null, 'compression_codec', Getopt::REQUIRED_ARGUMENT);
    $compression_codecOpt->setDescription("Optional compression method of messages: " . implode(", ", AdminUtils::$COMPRESSION_CODECS));
    $compression_codecOpt->setDefaultValue('none');
    $compression_codecOpt->setValidation(function ($value) {
        return AdminUtils::isCompressionCodecValid($value);
    });
    $batchsizeOpt = new Option(null, 'batchsize', Getopt::REQUIRED_ARGUMENT);
    $batchsizeOpt->setDescription('The batch size of messages to be sent');
    $batchsizeOpt->setDefaultValue('1000');
    $batchsizeOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value > 0;
    });
    $follow_lastOpt = new Option(null, 'follow_last', Getopt::REQUIRED_ARGUMENT);
    $follow_lastOpt->setDescription('If set to "false", when restarting logkafka process, 
                          the log_path formatted with current time will be collect;
                          If set to "true", when restarting logkafka process, the last 
                          collecting file will be collected continually');
    $follow_lastOpt->setDefaultValue('true');
    $follow_lastOpt->setValidation(function ($value) {
        return in_array($value, array('true', 'false'));
    });
    $message_timeout_msOpt = new Option(null, 'message_timeout_ms', Getopt::REQUIRED_ARGUMENT);
    $message_timeout_msOpt->setDescription('Local message timeout. This value is only enforced locally 
                          and limits the time a produced message waits for successful delivery. 
                          A time of 0 is infinite.');
    $message_timeout_msOpt->setDefaultValue('0');
    $message_timeout_msOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value >= 0;
    });
    $regex_filter_patternOpt = new Option(null, 'regex_filter_pattern', Getopt::REQUIRED_ARGUMENT);
    $regex_filter_patternOpt->setDescription("Optional regex filter pattern, the messages matching this pattern will be dropped");
    $regex_filter_patternOpt->setDefaultValue('');
    $regex_filter_patternOpt->setValidation(function ($value) {
        return AdminUtils::isRegexFilterPatternValid($value);
    });
    $lagging_max_bytesOpt = new Option(null, 'lagging_max_bytes', Getopt::REQUIRED_ARGUMENT);
    $lagging_max_bytesOpt->setDescription("log lagging max bytes, the monitor will alarm according to this setting");
    $lagging_max_bytesOpt->setDefaultValue('');
    $lagging_max_bytesOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value >= 0;
    });
    $rotate_lagging_max_secOpt = new Option(null, 'rotate_lagging_max_sec', Getopt::REQUIRED_ARGUMENT);
    $rotate_lagging_max_secOpt->setDescription("log rotatiion lagging max seconds, the monitor will alarm according to this setting");
    $rotate_lagging_max_secOpt->setDefaultValue('');
    $rotate_lagging_max_secOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value >= 0;
    });
    $monitorNameOpt = new Option(null, 'monitor_name', Getopt::REQUIRED_ARGUMENT);
    $monitorNameOpt->setDescription("the monitor name");
    $monitorNameOpt->setDefaultValue('');
    $monitorNameOpt->setValidation(function ($value) {
        return AdminUtils::isMonitorNameValid($value);
    });
    $monitor_interval_msOpt = new Option(null, 'monitor_interval_ms', Getopt::REQUIRED_ARGUMENT);
    $monitor_interval_msOpt->setDescription("the monitor checking interval");
    $monitor_interval_msOpt->setDefaultValue('');
    $monitor_interval_msOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value >= 1000;
    });
    $monitor_max_countOpt = new Option(null, 'monitor_max_count', Getopt::REQUIRED_ARGUMENT);
    $monitor_max_countOpt->setDescription("the monitor checking max count, if setting it to 0, the monitor will keep checking");
    $monitor_max_countOpt->setDefaultValue('');
    $monitor_max_countOpt->setValidation(function ($value) {
        return is_numeric($value) && (int) $value >= 0;
    });
    $validOpt = new Option(null, 'valid', Getopt::REQUIRED_ARGUMENT);
    $validOpt->setDescription('Enable now or not');
    $validOpt->setDefaultValue('true');
    $validOpt->setValidation(function ($value) {
        return in_array($value, array('true', 'false'));
    });
    $parser = new Getopt(array($zookeeper_connectOpt, $createOpt, $deleteOpt, $listOpt, $monitorOpt, $logkafka_idOpt, $log_pathOpt, $topicOpt, $partitionOpt, $keyOpt, $requiredAcksOpt, $compression_codecOpt, $batchsizeOpt, $follow_lastOpt, $message_timeout_msOpt, $regex_filter_patternOpt, $lagging_max_bytesOpt, $rotate_lagging_max_secOpt, $monitorNameOpt, $monitor_interval_msOpt, $monitor_max_countOpt, $validOpt));
    try {
        $parser->parse();
        // Error handling and --help functionality omitted for brevity
        $createOptVal = 0;
        $deleteOptVal = 0;
        $listOptVal = 0;
        $monitorOptVal = 0;
        if ($parser["create"]) {
            $createOptVal = 1;
        }
        if ($parser["delete"]) {
            $deleteOptVal = 1;
        }
        if ($parser["list"]) {
            $listOptVal = 1;
        }
        if ($parser["monitor"]) {
            $monitorOptVal = 1;
        }
    } catch (UnexpectedValueException $e) {
        echo "Error: " . $e->getMessage() . "\n";
        echo $parser->getHelpText();
        exit(1);
    }
    // actions
    $actions = $createOptVal + $deleteOptVal + $listOptVal + $monitorOptVal;
    if ($actions != 1) {
        CommandLineUtils::printUsageAndDie($parser, "Command must include exactly one action: --create, --delete, --list or --monitor");
    }
    // check args
    checkArgs($parser);
    // create admin utils
    $adminUtils = new AdminUtils($parser['zookeeper_connect']);
    $adminUtils->init();
    $adminUtils->checkZkState();
    // create monitor
    if ($monitorOptVal) {
        try {
            $monitor = createMonitor($parser['monitor_name']);
        } catch (Exception $e) {
            echo "Caught Exception ('{$e->getMessage()}')\n{$e}\n";
            exit(1);
        }
    } else {
        $monitor = NULL;
    }
    $adminUtils->setMonitor($monitor);
    try {
        if ($parser['create']) {
            createConfig($adminUtils, $parser);
        } else {
            if ($parser['delete']) {
                deleteConfig($adminUtils, $parser);
            } else {
                if ($parser['list']) {
                    listConfig($adminUtils, $parser);
                } else {
                    if ($parser['monitor']) {
                        monitorConfig($adminUtils, $parser);
                    }
                }
            }
        }
    } catch (LogConfException $e) {
        echo "Caught LogConfException ('{$e->getMessage()}')\n{$e}\n";
    } catch (Exception $e) {
        echo "Caught Exception ('{$e->getMessage()}')\n{$e}\n";
    }
}
Beispiel #4
0
            checkArgs($args, $checkList);
            if (empty($errors)) {
                include 'getrecord.php';
            }
            break;
        case 'ListIdentifiers':
        case 'ListRecords':
            if (isset($args['resumptionToken'])) {
                if (count($args) > 2) {
                    $errors[] = oai_error('exclusiveArgument');
                }
                $checkList = array("ops" => array("resumptionToken"));
            } else {
                $checkList = array("required" => array("metadataPrefix"), "ops" => array("from", "until", "set"));
            }
            checkArgs($args, $checkList);
            if (empty($errors)) {
                include 'listrecords.php';
            }
            break;
        default:
            // we never use compression with errors
            $compress = FALSE;
            $errors[] = oai_error('badVerb', $args['verb']);
    }
    /*switch */
} else {
    $errors[] = oai_error('noVerb');
}
if (!empty($errors)) {
    oai_exit();
Beispiel #5
0
<?php

ignore_user_abort(true);
checkArgs(array('day'));
//Delete old entries
$query = "DELETE FROM log WHERE day = ? AND owner = ?";
$stmt = mysqli_stmt_init($con);
$stmt->prepare($query);
$stmt->bind_param('ss', $_POST['day'], $_SESSION['email']);
$stmt->execute();
echo json_encode(array('type' => 'success', 'msg' => 'Successfully deleted.'));
Beispiel #6
0
<?php

checkArgs(array('tz', 'check1', 'check2', 'check3', 'check4', 'check5', 'drop1', 'drop2', 'opt1', 'opt2'));
$query = "UPDATE users SET tz = ?, check1 = ?, check2 = ?, check3 = ?, check4 = ?, check5 = ?, drop1 = ?, drop2 = ?, opt1 = ?, opt2 = ? WHERE email = ?";
$stmt = mysqli_stmt_init($con);
$stmt->prepare($query);
$stmt->bind_param('sssssssssss', $_POST['tz'], $_POST['check1'], $_POST['check2'], $_POST['check3'], $_POST['check4'], $_POST['check5'], $_POST['drop1'], $_POST['drop2'], $_POST['opt1'], $_POST['opt2'], $_SESSION['email']);
$stmt->execute();
foreach ($_POST as $key => $value) {
    $_SESSION[$key] = $value;
}
$result = array('type' => 'success', 'msg' => 'Successfully updated customs!');
echo json_encode($result);
Beispiel #7
0
function main()
{
    // Check Env
    CommandLineUtils::checkRequiredExtentions();
    // Options
    $helpOpt = new Option(null, 'help');
    $helpOpt->setDescription('Print usage information.');
    $zookeeperOpt = new Option(null, 'zookeeper', Getopt::REQUIRED_ARGUMENT);
    $zookeeperOpt->setDescription('REQUIRED: The connection string for the zookeeper connection in the form host:port.' . 'Multiple URLS can be given to allow fail-over.');
    $createOpt = new Option(null, 'create');
    $createOpt->setDescription('Create a new config.');
    $deleteOpt = new Option(null, 'delete');
    $deleteOpt->setDescription('Delete a config');
    $listOpt = new Option(null, 'list');
    $listOpt->setDescription('List all available configs.');
    $hostnameOpt = new Option(null, 'hostname', Getopt::REQUIRED_ARGUMENT);
    $hostnameOpt->setDescription('The hostname of machine which holds log files');
    $log_pathOpt = new Option(null, 'log_path', Getopt::REQUIRED_ARGUMENT);
    $log_pathOpt->setDescription('The log file path, like "/usr/local/apache2/logs/access_log.%Y%m%d"');
    $log_pathOpt->setValidation(function ($value) {
        $ret = AdminUtils::isFilePathValid($value);
        return $ret['valid'];
    });
    $topicOpt = new Option(null, 'topic', Getopt::REQUIRED_ARGUMENT);
    $topicOpt->setDescription('The topic of messages to be sent.');
    $topicOpt->setValidation(function ($value) {
        return AdminUtils::isTopicValid($value);
    });
    $partitionOpt = new Option(null, 'partition', Getopt::REQUIRED_ARGUMENT);
    $partitionOpt->setDescription('The partition of messages to be sent.' . '-1 : random' . 'n(>=0): partition n');
    $partitionOpt->setDefaultValue(-1);
    $partitionOpt->setValidation(function ($value) {
        return is_numeric($value);
    });
    $keyOpt = new Option(null, 'key', Getopt::REQUIRED_ARGUMENT);
    $keyOpt->setDescription('The key of messages to be sent.');
    $keyOpt->setDefaultValue('');
    $keyOpt->setValidation(function ($value) {
        return is_string($value);
    });
    $requiredAcksOpt = new Option(null, 'required_acks', Getopt::REQUIRED_ARGUMENT);
    $requiredAcksOpt->setDescription('Required ack number');
    $requiredAcksOpt->setDefaultValue(1);
    $requiredAcksOpt->setValidation(function ($value) {
        return is_numeric($value);
    });
    $compression_codecOpt = new Option(null, 'compression_codec', Getopt::REQUIRED_ARGUMENT);
    $compression_codecOpt->setDescription("Optional compression method of messages: " . implode(", ", AdminUtils::$COMPRESSION_CODECS));
    $compression_codecOpt->setDefaultValue('none');
    $compression_codecOpt->setValidation(function ($value) {
        return AdminUtils::isCompressionCodecValid($value);
    });
    $batchsizeOpt = new Option(null, 'batchsize', Getopt::REQUIRED_ARGUMENT);
    $batchsizeOpt->setDescription('The batch size of messages to be sent');
    $batchsizeOpt->setDefaultValue(1000);
    $batchsizeOpt->setValidation(function ($value) {
        return is_numeric($value) && $value > 0;
    });
    $follow_lastOpt = new Option(null, 'follow_last', Getopt::REQUIRED_ARGUMENT);
    $follow_lastOpt->setDescription('If set to "false", when restarting logkafka process, 
                          the log_path formatted with current time will be collect;
                          If set to "true", when restarting logkafka process, the last 
                          collecting file will be collected continually');
    $follow_lastOpt->setDefaultValue('true');
    $follow_lastOpt->setValidation(function ($value) {
        return in_array($value, array('true', 'false'));
    });
    $message_timeout_msOpt = new Option(null, 'message_timeout_ms', Getopt::REQUIRED_ARGUMENT);
    $message_timeout_msOpt->setDescription('Local message timeout. This value is only enforced locally 
                          and limits the time a produced message waits for successful delivery. 
                          A time of 0 is infinite.');
    $message_timeout_msOpt->setDefaultValue(0);
    $message_timeout_msOpt->setValidation(function ($value) {
        return is_numeric($value) && $value >= 0;
    });
    $validOpt = new Option(null, 'valid', Getopt::REQUIRED_ARGUMENT);
    $validOpt->setDescription('Enable now or not');
    $validOpt->setDefaultValue('true');
    $validOpt->setValidation(function ($value) {
        return in_array($value, array('true', 'false'));
    });
    $parser = new Getopt(array($zookeeperOpt, $createOpt, $deleteOpt, $listOpt, $hostnameOpt, $log_pathOpt, $topicOpt, $partitionOpt, $keyOpt, $requiredAcksOpt, $compression_codecOpt, $batchsizeOpt, $follow_lastOpt, $message_timeout_msOpt, $validOpt));
    try {
        $parser->parse();
        // Error handling and --help functionality omitted for brevity
        $listOptVal = 0;
        $createOptVal = 0;
        $deleteOptVal = 0;
        if ($parser["list"]) {
            $listOptVal = 1;
        }
        if ($parser["create"]) {
            $createOptVal = 1;
        }
        if ($parser["delete"]) {
            $deleteOptVal = 1;
        }
    } catch (UnexpectedValueException $e) {
        echo "Error: " . $e->getMessage() . "\n";
        echo $parser->getHelpText();
        exit(1);
    }
    // actions
    $actions = $listOptVal + $createOptVal + $deleteOptVal;
    if ($actions != 1) {
        CommandLineUtils::printUsageAndDie($parser, "Command must include exactly one action: --list, --create, or --delete");
    }
    // check args
    checkArgs($parser);
    $zkClient = new Zookeeper($parser['zookeeper']);
    AdminUtils::checkZkState($zkClient);
    try {
        if ($parser['create']) {
            createConfig($zkClient, $parser);
        } else {
            if ($parser['delete']) {
                deleteConfig($zkClient, $parser);
            } else {
                if ($parser['list']) {
                    listConfig($zkClient, $parser);
                }
            }
        }
    } catch (LogConfException $e) {
        echo "Caught LogConfException ('{$e->getMessage()}')\n{$e}\n";
    } catch (Exception $e) {
        echo "Caught Exception ('{$e->getMessage()}')\n{$e}\n";
    }
}