選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

register.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. require_once "sql.php";
  3. if(isset($_GET['name']))
  4. $name = $_GET['name'];
  5. else
  6. $name = "";
  7. if(isset($_GET['number']))
  8. $number = $_GET['number'];
  9. else
  10. $number = "";
  11. if(isset($_GET['port']))
  12. $port = $_GET['port'];
  13. else
  14. $port = "";
  15. if($name == "")
  16. error("Empty name");
  17. if($number == "")
  18. error("Empty number");
  19. if($port == "")
  20. error("Empty port");
  21. $port = intval($port);
  22. if($port < 1 || $port > 65535)
  23. error("Invalid port (1 <= port <= 65535)");
  24. $select = $db->prepare("SELECT id FROM gates WHERE number=:number");
  25. if($select->execute(array(":number" => $number)))
  26. {
  27. if($g = $select->fetch())
  28. {
  29. $update = $db->prepare("UPDATE gates SET name=:name, address=:address, port=:port, lastSeen=NULL WHERE id=:id");
  30. if($update->execute(array(":name" => $name, ":address" => $_SERVER['REMOTE_ADDR'], ":port" => $port, ":id" => $g['id'])))
  31. echo json_encode(array("id" => intval($g['id']), "gateTimeout" => $gateTimeout));
  32. else
  33. error("Failed to update database");
  34. }
  35. else
  36. {
  37. $insert = $db->prepare("INSERT INTO gates (name, number, address, port) VALUES (:name, :number, :address, :port) ON DUPLICATE KEY UPDATE lastSeen=NULL");
  38. if($insert->execute(array(":name" => $name, ":number" => $number, ":address" => $_SERVER['REMOTE_ADDR'], ":port" => $port)))
  39. echo json_encode(array("id" => intval($db->lastInsertId()), "gateTimeout" => $gateTimeout));
  40. else
  41. error("Failed to insert into database");
  42. }
  43. }
  44. else
  45. error("Failed to query gates");
  46. ?>