$st = $db->prepare('SELECT username FROM users WHERE username=? LIMIT 1'); $st->bind_param("s", $username); $st->execute(); $st->store_result(); $ar = $st->num_rows; $st->close(); if ($ar === 1) { hj_return(ALREADY_EXISTS); } $st = $db->prepare('INSERT INTO users (username, email, password) ' . 'SELECT username, email, password FROM registrations WHERE username=? AND token=? LIMIT 1'); $st->bind_param("ss", $username, $tok); $st->execute(); $ar = $st->affected_rows; $id = $st->insert_id; $st->close(); if ($ar !== 1) { hj_return(VERIF_FAILED); } $st = $db->prepare('DELETE FROM registrations WHERE username=?'); $st->bind_param('s', $username); $st->execute(); $st->close(); $st = $db->prepare('UPDATE users SET access_token=? WHERE username=?'); $access_tok = md5(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM)); $st->bind_param('ss', $access_tok, $username); $st->execute(); $st->close(); $db->close(); hj_resp('id', $id); hj_resp('access_token', $access_tok); hj_return(OK);
$req = hj_request(); hj_log('req', $req); $acc = $req->userinfo; auth_request($req); $remote = $req->remote; $det = $req->remote->details; $user_id = get_id($acc->username); $db = get_db(); $st = $db->prepare('INSERT INTO remotes' . '(user_id, manufacturer, model, device_type) VALUES(?,?,?,?)'); $type_string = get_type_string($req->remote); $st->bind_param("isss", $user_id, $det->manufacturer, $det->model, $type_string); $st->execute(); $remote_id = $st->insert_id; $st->close(); $st = $db->prepare('INSERT INTO buttons' . '(remote_id, function, frequency, pattern) VALUES(?,?,?,?)'); $b_func = $b_freq = $b_patt = ''; $st->bind_param("isis", $remote_id, $b_func, $b_freq, $b_patt); $i = 0; foreach ($remote->buttons as $ignored => $b_json) { hj_log("b" . $i, $b_json); $i++; $b = new Button($b_json); $b_func = $b->func_string(); $b_freq = $b->signal->frequency; $b_patt = $b->signal->serialize_pattern(); $st->execute(); } $st->close(); $db->close(); hj_resp("remote_id", $remote_id); hj_return(0);