<?php
if (!isset($_GET["index"])) {
   exit() ;
} else {
   $DEBUG = FALSE;
   function debug($msg) {
      if ($DEBUG) {
         echo "DEBUG: $msg<br/>";
      }
   }

   $index = $_GET["index"];
   if (is_numeric($index)) {
      ($db = new SQLite3("crypto.db")) || die("Error opening db");
      ($results = $db->query("SELECT COUNT(*) FROM Wins WHERE PuzzleId = $index;")) || die("Error getting count: " . $db->lastErrorMsg());
      while ($row = $results->fetchArray(SQLITE3_NUM)) {
         $count = $row[0];
      }
      $username = $_SERVER["REMOTE_ADDR"];
      ($results = $db->query("SELECT * FROM Users WHERE Name = \"$username\";")) || die("Error getting userid: " . $db->lastErrorMsg());
      $row = $results->fetchArray(SQLITE3_ASSOC);
      if ($row) {
      	 $userid = $row['UserId'];
      } else {
         $query = "INSERT INTO Users (Name) VALUES (\"$username\");";
	 $db->exec($query) || die("Error in exec: " . $db->lastErrorMsg());
         ($results = $db->query("SELECT * FROM Users WHERE Name = \"$username\";")) || die("Error getting userid: " . $db->lastErrorMsg());
	 $row = $results->fetchArray(SQLITE3_ASSOC);
	 $userid = $row['UserId'];
      }

      // check for update flag
      if (isset($_GET["inc"]) && is_numeric($_GET["inc"]) && $_GET["inc"] != 0) {
         $count = $count + 1;
	 $db->exec("INSERT INTO Wins (UserId,PuzzleId) VALUES ($userid,$index);") || die("Error adding win: " . $db->lastErrorMsg());
      }

      // find this user's wins
      ($results = $db->query("SELECT COUNT(*) FROM Wins WHERE UserId = $userid;")) || die("Error counting wins: " . $db->lastErrorMsg());
      if ($row = $results->fetchArray(SQLITE3_NUM)) {
      	 $totalwins = $row[0];
      } else {
 	 $totalwins = 0;
      }

      $db->close();

      if (isset($_GET["js"]) && is_numeric($_GET["js"]) && $_GET["js"] != 0) {
         echo "document.write('This puzzle has been completed $count time(s). You have completed $totalwins puzzles.');";
      } else {
         echo "$count,$totalwins";
      }
   }
}
?>
