index.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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) 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. <?php } ?>
  40. <div id="leveldescrip" style="overflow:auto;">
  41. <?php include 'levels/'.$leveldata['filename'].'.html'; ?>
  42. </div>
  43. <input type="button" id="subpane_close" style="display:none" value="Level info" onclick="onSubpaneClose()">
  44. <div id="subpane" style="display:none"></div>
  45. </div>
  46. <div id="editor" style="display:none;">
  47. Sent from:
  48. <select id="pktFrom">
  49. <option>Alice</option>
  50. <option>Bob</option>
  51. <option>Carol</option>
  52. </select><br>
  53. <fieldset>
  54. <legend>Network Layer</legend>
  55. srcip: <input type="text" id="srcip"></input><br>
  56. dstip: <input type="text" id="dstip"></input>
  57. </fieldset>
  58. <fieldset>
  59. <legend>Transport Layer</legend>
  60. payload: <input type="text" id="payload"></input><br>
  61. proto: <input type="text" id="other"></input>
  62. </fieldset>
  63. </div>
  64. <div id="winner" style="display:none;">
  65. <p>You won the level! Congrats!</p>
  66. </div>
  67. <div id="footer" style="position:absolute;bottom:0.5em;right:0.5em;font-size:0.5em">
  68. created by
  69. <a href="https://erinn.io/">erinn atwater</a> based on a project with
  70. <a href="https://cs.uwaterloo.ca/~cbocovic">cecylia bocovich</a> |
  71. device images designed by
  72. <a href="http://www.flaticon.com/authors/madebyoliver">madebyoliver</a> from Flaticon
  73. </div>
  74. <div id="loading" style="position:absolute;top:0;left:0;right:0;bottom:0;background-color:#DDD;color:#222;text-align:center">
  75. <h2>Netsim</h3>
  76. <p>Loading...<p>
  77. </div>
  78. </body>
  79. </html>