function prepUpload($reqData) { $id = $reqData['id']; $format = $reqData['format']; $log = $reqData['log']; $p1 = $reqData['p1']; $p2 = $reqData['p2']; pg_query('BEGIN'); pg_query_params('DELETE FROM replay_players WHERE replayid = $1', array($id)); pg_query_params('DELETE FROM replays WHERE replayid = $1', array($id)); pg_query_params('INSERT INTO replays (replayid, format, log) VALUES ($1, $2, $3)', array($id, $format, $log)); pg_query_params('INSERT INTO replay_players (replayid, userid) VALUES ($1, $2), ($1, $3);', array($id, to_id($p1), to_id($p2))); pg_query('COMMIT'); }
function to_id($name) { return preg_replace('/[^a-z0-9]/', '', strtolower($name)); } if (!isset($_GET['id'])) { die('No replay ID specified.'); } if (strpos($_GET['id'], '-') === FALSE) { $query = ' SELECT replayid, rp2.userid, to_char(time, \'YYYY-MM-DD HH:MI\') FROM replays LEFT JOIN replay_players AS rp1 USING (replayid) LEFT JOIN replay_players AS rp2 USING (replayid) WHERE rp1.userid = $1 AND rp2.userid <> rp1.userid ORDER BY time DESC, replayid DESC;'; $id = to_id($_GET['id']); $result = pg_query_params($query, array($id)); $array_result = array(); while (list($replayid, $otherplayer, $time) = pg_fetch_row($result)) { $array_result[] = '<a href="/replay/' . htmlspecialchars(rawurlencode($replayid)) . '">' . htmlspecialchars($replayid) . '</a> - ' . htmlspecialchars($id) . ' vs ' . htmlspecialchars($otherplayer) . ' (' . htmlspecialchars($time) . ')'; } if (!$array_result) { die('No results.'); } echo '<!doctype html><title>', htmlspecialchars($id), ' replays</title><ul><li>', implode('<li>', $array_result), '</ul>'; die; } $id = $_GET['id']; $result = pg_query_params('SELECT format, log FROM replays WHERE replayid = $1', array($id)); if (!(list($format, $log) = pg_fetch_row($result))) {