index.php (5539B)
1 <?php 2 3 require_once "utils/autoloader.php"; 4 5 require_once "routing/login.php"; 6 require_once "routing/user_add.php"; 7 require_once "routing/user.php"; 8 $db = new Lollipop\SQLDatabase("86.92.67.21", "friedel", "hailiwa", "panda"); 9 10 session_start(); 11 12 $templater = new Lollipop\Template(new Lollipop\TemplateMethods()); 13 $router = new Lollipop\Router($templater); 14 15 //login 16 $router->addRoute(["GET"], "/", "views/login.html"); 17 $router->addRoute(["POST"], "/login", $login); 18 19 //css 20 $router->addRoute(["GET"], "css/dashboard.css", "css/dashboard.css"); 21 $router->addRoute(["GET"], "css/hdata.css", "css/hdata.css"); 22 $router->addRoute(["GET"], "css/login.css", "css/login.css"); 23 $router->addRoute(["GET"], "css/map.css", "css/map.css"); 24 //logout 25 $router->addRoute(["POST", "GET"], "/logout", $logout); 26 27 $router->addRoute(["GET"], "/api/:data", function ($key) { 28 include 'Controller/api/api.php'; 29 $weather_data = []; 30 if($key['data'] == ':3jvl7yb5sRr80s6lTdeOyxV9VTQZkCPRp7bKOWKFWxfL2vhsU4Hhpgcmz9qe0zEk') { 31 get_windchill(); 32 $db = new mysqli("86.92.67.21", "friedel", "hailiwa", "panda"); 33 // we halen data op van 2023-06-28 zodat er data word getoond op de homepage en op de map, 34 // bij de echte applicatie waar de data elke dag wordt geupdatet zou hier CURDATE() komen te staan. 35 $query = "SELECT city, min(wind_chill) as wind_chill, country 36 FROM retrieve_zoos 37 WHERE date = '2023-06-28' 38 group by city, country 39 "; 40 41 $stmt = mysqli_prepare($db, $query); 42 $stmt->execute(); 43 $data = $stmt->get_result(); 44 45 while ($row = $data->fetch_assoc()) { 46 $weather_data[] = [ 47 'windchill' => $row['wind_chill'], 48 'location' => $row['city'], 49 'country' => $row['country'] 50 ]; 51 } 52 header('Content-Type: application/json'); 53 echo json_encode($weather_data); 54 } elseif($key['data'] == ':ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684') { 55 get_graph(); 56 $weather_data = []; 57 $db = new mysqli("86.92.67.21", "friedel", "hailiwa", "panda"); 58 $query = "SELECT distinct humidity, city, date_time 59 FROM retrieve_facilities 60 WHERE date(date_time) BETWEEN DATE_SUB(CURDATE(), INTERVAL 28 DAY) AND CURDATE() 61 "; 62 $stmt = mysqli_prepare($db, $query); 63 $stmt->execute(); 64 $data = $stmt->get_result(); 65 66 while ($row = $data->fetch_assoc()) { 67 $weather_data[] = [ 68 'humidity' => $row['humidity'], 69 'location' => $row['city'], 70 'datetime' => $row['date_time'] 71 ]; 72 } 73 74 header('Content-Type: application/json'); 75 echo json_encode($weather_data); 76 } 77 }); 78 79 if(isset($_SESSION['user_permissions']) && (in_array(1, $_SESSION['user_permissions']) || in_array(2, $_SESSION['user_permissions']))) { 80 //user 81 //add 82 $router->addRoute(["GET"], "/user/add", "views/add_user.html"); 83 $router->addRoute(["POST"], "/user/add", $add_user); 84 85 //dashboard 86 $router->addRoute(["GET"], "/dashboard", function (&$vars) { 87 $vars += $_SESSION; 88 return "views/dashboard.html"; 89 }); 90 91 $router->addRoute(["GET"], "/map", "views/map.html"); 92 $router->addRoute(["GET"], "/hdata", function (&$vars) { 93 $key = new Key(); 94 if (isset($_GET['downloadXml'])) { 95 $filename = 'weather_data.xml'; // Specify the filename for the downloaded XML file 96 97 // Set the appropriate headers for file download 98 header('Content-Type: application/xml'); 99 header('Content-Disposition: attachment; filename="' . $filename . '"'); 100 101 // Retrieve the XML data 102 $humidityXml = $key->retrieveHumidityTable('ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684', true); 103 $hDataXml = $key->retrieveHData('ae9c50dc5cd58c538a0d6aedb17fffedcaffd568d22381dab3ae72baaeb24684', true); 104 105 // Output the XML data directly to the browser 106 echo '<weather>' . $humidityXml . $hDataXml . '</weather>'; 107 exit(); 108 } else { 109 $vars["table"] = $key->retrieveHData('3jvl/yb?sRr80s6lTdeOyxV9VTQZkCPRp/bKOWKFWxfL2vhsU4Hhpgcmz9qe0zEk'); 110 } 111 112 return "views/hdata.html"; 113 }); 114 //user management for admins 115 if(in_array(1, $_SESSION['user_permissions'])) { 116 $router->addRoute(["GET"], "/user", $user_get); 117 118 $router->addRoute(["POST"], "/user", $user_post); 119 120 $router->addRoute(["GET"], "/user/search/:search_query", $user_query); 121 122 $router->addRoute(["POST"], "/user/search", $user_search); 123 124 $router->addRoute(["GET"], "/user/:primary_key/edit", $user_edit); 125 126 $router->addRoute(["GET"], "/user/:primary_key/delete", $user_delete); 127 } 128 } 129 130 // static files // 131 132 $router->addRoute(['GET'], '/css/dashboard.css', "css/dashboard.css"); 133 $router->addRoute(['GET'], '/css/login.css', "css/login.css"); 134 $router->addRoute(['GET'], '/css/hdata.css', "css/hdata.css"); 135 $router->addRoute(['GET'], '/css/map.css', "css/map.css"); 136 $router->addRoute(['GET'], '/css/user.css', "css/user.css"); 137 138 $router->addRoute(['GET'], '/img/big-logo.png', "img/big-logo.png"); 139 $router->addRoute(['GET'], '/img/small_logo.png', "img/small_logo.png"); 140 141 $router->addRoute(['GET'], '/js/panda.js', "js/panda.js"); 142 $router->addRoute(['GET'], '/js/map.js', "js/map.js"); 143 144 $router->route();