From 1a9410c7b06eceb10bc41256b57b4d7384c5cb5b Mon Sep 17 00:00:00 2001 From: adrien Date: Sat, 25 Sep 2021 22:45:02 +0200 Subject: [PATCH] first commit --- .gitignore | 1 + addNetwork.php | 27 +++++++++++++ addSite.php | 14 +++++++ connect.inc.php | 15 +++++++ index.php | 7 ++++ nok.png | Bin 0 -> 1483 bytes ok.png | Bin 0 -> 1441 bytes script.js | 24 +++++++++++ siteNetworks.php | 103 +++++++++++++++++++++++++++++++++++++++++++++++ sitesList.php | 32 +++++++++++++++ style.css | 45 +++++++++++++++++++++ updateHost.php | 36 +++++++++++++++++ wait.gif | Bin 0 -> 5040 bytes 13 files changed, 304 insertions(+) create mode 100644 .gitignore create mode 100644 addNetwork.php create mode 100644 addSite.php create mode 100644 connect.inc.php create mode 100644 index.php create mode 100644 nok.png create mode 100644 ok.png create mode 100644 script.js create mode 100644 siteNetworks.php create mode 100644 sitesList.php create mode 100644 style.css create mode 100644 updateHost.php create mode 100644 wait.gif diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6830d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +connect.php diff --git a/addNetwork.php b/addNetwork.php new file mode 100644 index 0000000..7533693 --- /dev/null +++ b/addNetwork.php @@ -0,0 +1,27 @@ +Revenir en arrière"); +} + +$siteId = (int) $_POST['siteId']; +$gateway = ip2long($_POST['gateway']); +$mask = ip2long($_POST['mask']); +$networkAddress = $gateway & $mask; + +include "connect.php"; +try { + $insert = $db->prepare("INSERT INTO Networks(Name, Address, Mask, SiteId) VALUES(:name, $networkAddress, $mask, $siteId)"); + $insert->execute(['name' => $_POST['name']]); + $networkId = $db->lastInsertId(); + $insert = $db->exec("INSERT INTO Hosts(IPAddress, NetworkId, Comments) VALUES($gateway, $networkId, 'Passerelle')"); + + header("Location: .?site=${_POST['siteName']}"); +} catch(Exception $e) { + echo($e->getMessage() . "
Revenir en arrière"); +} +exit; +?> diff --git a/addSite.php b/addSite.php new file mode 100644 index 0000000..795e4eb --- /dev/null +++ b/addSite.php @@ -0,0 +1,14 @@ +Revenir en arrière"); +} +include "connect.php"; +try { + $insert = $db->prepare("INSERT INTO Sites(Name) VALUES(:name)"); + $insert->execute(['name' => $_POST['siteName']]); + header("Location: .?site=${_POST['siteName']}"); + exit; +} catch(Exception $e) { + echo($e->getMessage() . "
Revenir en arrière"); +} +?> \ No newline at end of file diff --git a/connect.inc.php b/connect.inc.php new file mode 100644 index 0000000..78c8b48 --- /dev/null +++ b/connect.inc.php @@ -0,0 +1,15 @@ +setAttribute(PDO::ATTR_EMULATE_PREPARES, false); + $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch(Exception $e) { + die($e->getMessage() . "
Revenir en arrière"); +} +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..47ccd13 --- /dev/null +++ b/index.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/nok.png b/nok.png new file mode 100644 index 0000000000000000000000000000000000000000..1efd421a4ad1721c3153c02006c76d9f3da785bf GIT binary patch literal 1483 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 F699bp8kYb7 literal 0 HcmV?d00001 diff --git a/script.js b/script.js new file mode 100644 index 0000000..497a48f --- /dev/null +++ b/script.js @@ -0,0 +1,24 @@ +function updateHost(input) { + input.style.backgroundImage = 'url(wait.gif)' + input.style.fontStyle = "italic" + fetch(new Request("updateHost.php", { + method:"POST", + body:new FormData(input.form), + mode:"cors" + })).then(response => { + if (response.ok) { + input.style.backgroundImage = '' + input.style.fontStyle = "" + } else { + input.style.backgroundImage = 'url(nok.png)' + } + }) +} + +function checkMask(input) { + if (input.checkValidity()) { + + } else { + input.setCustomValidity("Masque incorrect") + } +} \ No newline at end of file diff --git a/siteNetworks.php b/siteNetworks.php new file mode 100644 index 0000000..f90acd3 --- /dev/null +++ b/siteNetworks.php @@ -0,0 +1,103 @@ +prepare('SELECT id from Sites WHERE Name=:siteName'); +$site->execute(['siteName' => $siteName]); +$siteId = $site->fetch()["id"]; +if (!$siteId) { + header("HTTP/1.1 404 Not Found"); + die("Erreur ! Site inconnu : ${_GET["site"]}
Accueil"); +} +?> + + + + TablIP - <?=$siteName?> + + + + +
+

TablIP

+

+
+ +query("SELECT * FROM `Networks` WHERE `SiteId` = $siteId"); +while ($network = $networks->fetch()) +{ + $networkId = $network["id"]; + $networkAddress = (int) $network["Address"]; + $networkMask = (int) $network["Mask"]; +?> + + + + + + + + + + + + + + + +query("SELECT * from `Hosts` WHERE IPAddress=$ip AND NetworkId=$networkId"); + $host = $hosts->fetch(); +?> + + + /> + /> + + + + + + + + + + + + + + + +
+
Adresse IPNom d'hôteFQDNAdresse MACCommentaires
Adresse réseau
"/>"/>"/>"/>
Adresse de diffusion
+closeCursor(); +?> + +
+
+ Ajouter un réseau + + + + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/sitesList.php b/sitesList.php new file mode 100644 index 0000000..ca3dcd3 --- /dev/null +++ b/sitesList.php @@ -0,0 +1,32 @@ + + + TablIP + + + +
+

TablIP

+
+
    + +query('SELECT Name FROM Site ORDER BY Name'); +while ($site = $sites->fetch()) +{ + echo "
  • ${site['Name']}
  • \n"; +} +$sites->closeCursor(); +?> + +
+
+
+ Ajouter un site + + + +
+
+ + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..096487f --- /dev/null +++ b/style.css @@ -0,0 +1,45 @@ +body { + margin: auto 1em; +} + +header { + text-align: center; +} + +li { + list-style: none; +} + +table { + border-collapse: collapse; +} + +th, td { + border: solid 1px; +} + +td { + padding: 0; +} + +td input { + border: 0; + background-repeat: no-repeat; + background-position: right center; + width: 100%; +} + +.add { + display: grid; + grid-template-columns: 1fr 2fr; + grid-gap: 1em; +} +.add button { + width: 100%; + margin: auto; + grid-column: 1/3; +} + +footer { + text-align: center; +} \ No newline at end of file diff --git a/updateHost.php b/updateHost.php new file mode 100644 index 0000000..d7250cd --- /dev/null +++ b/updateHost.php @@ -0,0 +1,36 @@ +prepare(" + INSERT INTO Hosts(IpAddress, NetworkId, Hostname, FQDN, MacAddress, Comments) + VALUES($ip, $networkId, :i_hostname, :i_fqdn, :i_macAddress, :i_comments) + ON DUPLICATE KEY UPDATE Hostname = :u_hostname, FQDN = :u_fqdn, MacAddress = :u_macAddress, Comments = :u_comments + "); + $update->execute([ + 'i_hostname' => $_POST["Hostname"], + 'i_fqdn' => $_POST["FQDN"], + 'i_macAddress' => $_POST["MacAddress"], + 'i_comments' => $_POST["Comments"], + 'u_hostname' => $_POST["Hostname"], + 'u_fqdn' => $_POST["FQDN"], + 'u_macAddress' => $_POST["MacAddress"], + 'u_comments' => $_POST["Comments"] + ]); +} catch(Exception $e) { + header("HTTP/1.x 500 " . $e->getMessage()); + die($e->getMessage()); +} +?> \ No newline at end of file diff --git a/wait.gif b/wait.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e06bb98b5c4a25b96e4a49d18acb586f2343a41 GIT binary patch literal 5040 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 literal 0 HcmV?d00001