Beispiel #1
0
function get_fld_val($table, $field, $id)
{
    global $db;
    $sql = "select {$field} from {$table} where id={$id}";
    $rs = $db->Execute($sql);
    if (!$rs) {
        auth_fail("Error 39906: {$table}, {$field}, {$id}");
    }
    return $rs->fields(0);
}
function do_admin_auth() {
    global $BTC_PROXY;

    if (!isset($_SERVER['PHP_AUTH_USER'])) {
	if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
            $ha = base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6));
	    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , $ha);
	}
        auth_fail();
    }

    if (    $_SERVER['PHP_AUTH_USER'] != $BTC_PROXY['admin_user'] ||
            $_SERVER['PHP_AUTH_PW']   != $BTC_PROXY['admin_password']) {
        auth_fail();
    }
}
require_once dirname(__FILE__) . '/common.inc.php';
# Authenticate
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    auth_fail();
}
$pdo = db_connect();
$q = $pdo->prepare('
    SELECT id FROM worker

    WHERE name = :name
      AND password = :password
');
$q->execute(array(':name' => $_SERVER['PHP_AUTH_USER'], ':password' => $_SERVER['PHP_AUTH_PW']));
$worker_id = $q->fetchColumn();
if ($worker_id === FALSE) {
    auth_fail();
}
$q->closeCursor();
function process_work($pdo, $worker_id, $pool_id, $response, $json_id)
{
    $q = $pdo->prepare('
        INSERT IGNORE INTO work_data

        (worker_id, pool_id, data, time_requested)
            VALUES
        (:worker_id, :pool_id, :data, UTC_TIMESTAMP())
    ');
    $data = strtolower(substr($response->result->data, 0, 152));
    if (!$q->execute(array(':worker_id' => $worker_id, ':pool_id' => $pool_id, ':data' => $data))) {
        json_error('Database error on INSERT into work_data: ' . json_encode($q->errorInfo()), $json_id);
    }
function do_admin_auth()
{
    global $BTC_PROXY;
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        auth_fail();
    }
    if ($_SERVER['PHP_AUTH_USER'] != $BTC_PROXY['admin_user'] || $_SERVER['PHP_AUTH_PW'] != $BTC_PROXY['admin_password']) {
        auth_fail();
    }
}