index.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. require_once 'config.inc.php';
  3. if (LOGGEDIN && !isset($_GET['level'])) {
  4. include 'listing.inc.php';
  5. exit();
  6. } else if (LOGGEDIN) {
  7. $l = (int)$_GET['level'];
  8. $q = $db->query("SELECT * FROM level WHERE id = ".$l);
  9. $leveldata = $q->fetchArray();
  10. if (!$leveldata) exit('no such level');
  11. } else {
  12. $leveldata = array('id' => -1, 'filename' => 'login/login', 'name' => 'CS4G Netsim');
  13. }
  14. ?><!doctype html>
  15. <html lang="en">
  16. <head>
  17. <meta charset="UTF-8" />
  18. <title>CS4G Network Simulator</title>
  19. <script src="js/jquery-3.2.1.min.js"></script>
  20. <script src="js/jquery-ui.min.js"></script>
  21. <script src="js/phaser.min.js"></script>
  22. <script src="js/ui.js"></script>
  23. <script src="js/bindings.js"></script>
  24. <script src="js/devicescripts.js"></script>
  25. <link href="css/jquery-ui.min.css" rel="stylesheet">
  26. <style type="text/css">
  27. body { margin: 0; overflow:hidden; }
  28. </style>
  29. </head>
  30. <body>
  31. <script type="text/javascript">
  32. <?php include 'phaser.inc.php'; ?>
  33. </script>
  34. <div id="game" style="float:left"></div>
  35. <div id="pane" style="position:absolute;padding:20px;overflow:auto;">
  36. <h1><?=$leveldata['name']?></h1>
  37. <?php if (LOGGEDIN) { ?>
  38. <input type="button" value="Level list" onclick="location.href='./'">
  39. <input type="button" value="Log out" onclick="location.href='./?logout'">
  40. <?php } ?>
  41. <div id="leveldescrip" style="overflow:auto;">
  42. <?php include 'levels/'.$leveldata['filename'].'.html'; ?>
  43. </div>
  44. <input type="button" id="subpane_close" style="display:none" value="Level info" onclick="onSubpaneClose()">
  45. <div id="subpane" style="display:none"></div>
  46. </div>
  47. <div id="editor" style="display:none;">
  48. Sent from:
  49. <select id="pktFrom">
  50. <option>Alice</option>
  51. <option>Bob</option>
  52. <option>Carol</option>
  53. </select><br>
  54. <fieldset>
  55. <legend>Network Layer</legend>
  56. srcip: <input type="text" id="srcip"></input><br>
  57. dstip: <input type="text" id="dstip"></input>
  58. </fieldset>
  59. <fieldset>
  60. <legend>Transport Layer</legend>
  61. payload: <input type="text" id="payload"></input><br>
  62. proto: <input type="text" id="other"></input>
  63. </fieldset>
  64. </div>
  65. <div id="winner" style="display:none;">
  66. <p>You won the level! Congrats!</p>
  67. </div>
  68. <div id="footer" style="position:absolute;bottom:0.5em;right:0.5em;font-size:0.5em">
  69. created by
  70. <a href="https://erinn.io/">erinn atwater</a> based on a project with
  71. <a href="https://cs.uwaterloo.ca/~cbocovic">cecylia bocovich</a> |
  72. device images designed by
  73. <a href="http://www.flaticon.com/authors/madebyoliver">madebyoliver</a> from Flaticon
  74. </div>
  75. </body>
  76. </html>