index.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. require_once 'login.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) {
  11. include 'header.inc.php';
  12. ?>
  13. <div style="text-align:center; min-height:100%;">
  14. <h3>Congratulations!</h3>
  15. <p>You beat the last level in the game!</p>
  16. <p><img src="./includes/fireworks.gif"></p>
  17. <p>You may want to go <a href="./">look over the levels</a> to make sure you didn't miss any.</p>
  18. <p>Otherwise, give yourself a pat on the back! You're a real hacker now!</p>
  19. <div style="height:150px;"></div>
  20. </div>
  21. <?php
  22. include 'footer.inc.php';
  23. exit();
  24. }
  25. } else {
  26. $leveldata = array('id' => -1, 'filename' => 'login/login', 'name' => 'CS4G Netsim');
  27. }
  28. ?><!doctype html>
  29. <html lang="en">
  30. <head>
  31. <meta charset="UTF-8" />
  32. <title>CS4G Network Simulator</title>
  33. <script src="js/jquery-3.2.1.min.js"></script>
  34. <script src="js/jquery-ui.min.js"></script>
  35. <script src="js/phaser.min.js"></script>
  36. <script src="js/ui.js"></script>
  37. <script src="js/bindings.js"></script>
  38. <script src="js/devicescripts.js"></script>
  39. <link href="css/jquery-ui.min.css" rel="stylesheet">
  40. <style type="text/css">
  41. * { font-family:Arial, Helvetica, sans-serif; }
  42. body { margin: 0; overflow:hidden; }
  43. </style>
  44. </head>
  45. <body>
  46. <script type="text/javascript">
  47. <?php include 'phaser.inc.php'; ?>
  48. </script>
  49. <div id="game" style="float:left"></div>
  50. <div id="pane" style="position:absolute;padding:20px;overflow:auto;">
  51. <h1><?=$leveldata['name']?></h1>
  52. <?php if (LOGGEDIN) { ?>
  53. <input type="button" value="Level list" onclick="location.href='./'">
  54. <?php } ?>
  55. <div id="leveldescrip" style="overflow:auto;">
  56. <?php include 'levels/'.$leveldata['filename'].'.html'; ?>
  57. </div>
  58. <input type="button" id="subpane_close" style="display:none" value="Level info" onclick="onSubpaneClose()">
  59. <div id="subpane" style="display:none"></div>
  60. </div>
  61. <div id="editor" style="display:none;">
  62. Sent from:
  63. <select id="pktFrom">
  64. <option>Alice</option>
  65. <option>Bob</option>
  66. <option>Carol</option>
  67. </select><br>
  68. <fieldset>
  69. <legend>Network Layer</legend>
  70. srcip: <input type="text" id="srcip"></input><br>
  71. dstip: <input type="text" id="dstip"></input>
  72. </fieldset>
  73. <fieldset>
  74. <legend>Transport Layer</legend>
  75. payload: <input type="text" id="payload"></input><br>
  76. proto: <input type="text" id="other"></input>
  77. </fieldset>
  78. </div>
  79. <div id="winner" style="display:none;">
  80. <p>You won the level! Congrats!</p>
  81. </div>
  82. <div id="footer" style="position:absolute;bottom:0.5em;right:0.5em;font-size:0.5em">
  83. created by
  84. <a href="https://erinn.io/">erinn atwater</a> and
  85. <a href="https://cs.uwaterloo.ca/~cbocovic">cecylia bocovich</a> |
  86. device images designed by
  87. <a href="http://www.flaticon.com/authors/madebyoliver">madebyoliver</a> from Flaticon
  88. </div>
  89. <div id="loading" style="position:absolute;top:0;left:0;right:0;bottom:0;background-color:#DDD;color:#222;text-align:center">
  90. <h2>Netsim</h3>
  91. <p>Loading...<p>
  92. </div>
  93. </body>
  94. </html>