<?php /** * insert flowIDs and info to submit into log_db.log_t. * log_db.log_t gets periodically checked by * script whichs tries to submit flowids to gameserver. * Information about this status can be found in board.php * * 2014-15 by Jan "Someone" Vales <someone@somenet.org> * do not publish! */ $GLOBALS['db'] = new PDO('pgsql:host=localhost;port=5432;dbname=flagbot;user=flagbot;password=flagbotpw'); $GLOBALS['db']->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); if (strcmp($_SERVER['REQUEST_METHOD'],"GET") === 0 || strcmp($_SERVER['REQUEST_METHOD'],"POST") === 0 ) { handleRequest(); } else { http_response_code(405); //Method not implemented exit("<p><b>what?</b> try GET or POST</p>"); } function handleRequest() { if (isset($_REQUEST['flag']) && isset($_REQUEST['service']) && isset($_REQUEST['flag_id']) && isset($_REQUEST['submitter'])) { insertData($_REQUEST['flag'],$_REQUEST['service'], $_REQUEST['flag_id'], $_REQUEST['submitter']); } else { echo "<p><b>usage:</b><br>"; echo "GET /submit.php?flag=<i>STRING</i>&service=<i>STRING</i>&flag_id=<i>STRING</i>&submitter=<i>STRING</i><br>"; echo "POST<br> flag=<i>STRING</i>&service=<i>STRING</i>&flag_id=<i>STRING</i>&submitter=<i>STRING</i></p>"; } } function insertData($flag, $service, $flagid, $submitter) { echo "<p><b>inserting data...</b></p>"; echo "flag=".htmlentities($flag)."<br>"; echo "service=".htmlentities($service)."</p>"; echo "flagid=".htmlentities($flagid)."</p>"; echo "submitter=".htmlentities($submitter)."</p>"; $success = 0; try { $GLOBALS['db']->beginTransaction(); $stmt_fid = $GLOBALS['db']->prepare("UPDATE flag_ids set status = 1 where service = ? and flag_id = ?"); $stmt_fid->execute(array($service, $flagid)); $GLOBALS['db']->commit(); $GLOBALS['db']->beginTransaction(); $stmt = $GLOBALS['db']->prepare("INSERT INTO flags (flag, service, flag_id, submitter) VALUES(?, ?, ?, ?)"); $stmt->execute(array($flag, $service, $flagid, $submitter)); $GLOBALS['db']->commit(); $success = 1; }catch(PDOException $ex) { echo "<p><b>INSERT FAIL</b></p><p>".$ex->getMessage()."</p>"; $GLOBALS['db']->rollBack(); } if ($success == 1) echo "<p><b>OK</b></p>"; }