Commit 87d5afd9dd7ababf9a9ab0a8ac156eab9b6c8195
1 parent
9de9bb41
feat(*): verification disponibilité créneaux + bouton accès au banc selon créneau et heure actuelle
Showing
7 changed files
with
128 additions
and
46 deletions
Show diff stats
bdd.sql
@@ -33,8 +33,8 @@ create table reservation | @@ -33,8 +33,8 @@ create table reservation | ||
33 | personne char(8) REFERENCES utilisateur, | 33 | personne char(8) REFERENCES utilisateur, |
34 | HEUREDEBUT char(5), | 34 | HEUREDEBUT char(5), |
35 | HEUREFIN char(5), | 35 | HEUREFIN char(5), |
36 | - UNIQUE(moment,personne), | ||
37 | - PRIMARY KEY(reserve,moment)); | 36 | + /*UNIQUE(moment,HEUREDEBUT),*/ |
37 | + PRIMARY KEY(reserve,moment,HEUREDEBUT)); | ||
38 | 38 | ||
39 | /* Insertions des donnees dans la BDD */ | 39 | /* Insertions des donnees dans la BDD */ |
40 | 40 |
html/ajoutReservation.php
@@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
48 | 48 | ||
49 | $requete = "INSERT INTO reservation VALUES($banc,'$date','$login','$heure','$heurefin')"; | 49 | $requete = "INSERT INTO reservation VALUES($banc,'$date','$login','$heure','$heurefin')"; |
50 | $exec_requete = mysqli_query($db,$requete); | 50 | $exec_requete = mysqli_query($db,$requete); |
51 | - | 51 | + echo "<meta http-equiv=\"refresh\" content=\"0;url=mesReservations.php\">"; |
52 | }else{ | 52 | }else{ |
53 | echo "Pas marché"; | 53 | echo "Pas marché"; |
54 | } | 54 | } |
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +<?php | ||
2 | + if(isset($_POST['date']) && isset($_POST['banc'])){ | ||
3 | + $date=$_POST['date']; | ||
4 | + $banc=$_POST['banc']; | ||
5 | + include("connexion.php"); | ||
6 | + $requete = "SELECT HEUREDEBUT FROM reservation WHERE | ||
7 | + moment = '$date' AND reserve = $banc"; | ||
8 | + $exec_requete = mysqli_query($db,$requete); | ||
9 | + $reponse = mysqli_fetch_all($exec_requete); | ||
10 | + foreach($reponse as $value){ | ||
11 | + echo $value[0]."-"; | ||
12 | + } | ||
13 | + mysqli_close($db); | ||
14 | + } | ||
15 | +?> |
html/login.php
@@ -21,6 +21,7 @@ if(isset($_POST['identifiant']) && isset($_POST['mdp'])){ | @@ -21,6 +21,7 @@ if(isset($_POST['identifiant']) && isset($_POST['mdp'])){ | ||
21 | //header('Location : index.html'); | 21 | //header('Location : index.html'); |
22 | } | 22 | } |
23 | }else{ | 23 | }else{ |
24 | + /* Ne devrait pas pouvoir arriver mais j'ajoute une double sécurité */ | ||
24 | echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; | 25 | echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; |
25 | //header('Location : index.html'); | 26 | //header('Location : index.html'); |
26 | } | 27 | } |
html/menu.php
@@ -22,10 +22,11 @@ | @@ -22,10 +22,11 @@ | ||
22 | echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; | 22 | echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; |
23 | //header('Location : index.html'); | 23 | //header('Location : index.html'); |
24 | } | 24 | } |
25 | - } | ||
26 | - if(isset($_SESSION['identifiant'])){ | 25 | + }elseif(isset($_SESSION['identifiant'])){ |
27 | $identifiant = $_SESSION['identifiant']; | 26 | $identifiant = $_SESSION['identifiant']; |
28 | echo "Bonjour $identifiant, vous êtes connecté<br>"; | 27 | echo "Bonjour $identifiant, vous êtes connecté<br>"; |
28 | + }else{ | ||
29 | + echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; | ||
29 | } | 30 | } |
30 | ?> | 31 | ?> |
31 | <form method="POST" action="menu.php?deconnexion=true"> | 32 | <form method="POST" action="menu.php?deconnexion=true"> |
html/mesReservations.php
@@ -14,13 +14,14 @@ | @@ -14,13 +14,14 @@ | ||
14 | </head> | 14 | </head> |
15 | <body> | 15 | <body> |
16 | <form method="POST" action="menu.php"> | 16 | <form method="POST" action="menu.php"> |
17 | - <button class="btn-lg btn-success" type="submit">Retour au menu</button> | 17 | + <button class="btn-lg btn-secondary" type="submit">Retour au menu</button> |
18 | </form> | 18 | </form> |
19 | <?php | 19 | <?php |
20 | session_start(); | 20 | session_start(); |
21 | if(isset($_SESSION['identifiant'])){ | 21 | if(isset($_SESSION['identifiant'])){ |
22 | $identifiant = $_SESSION['identifiant']; | 22 | $identifiant = $_SESSION['identifiant']; |
23 | - echo "Bonjour $identifiant, vous êtes connecté<br>"; | 23 | + }else{ |
24 | + echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; | ||
24 | } | 25 | } |
25 | include("connexion.php"); | 26 | include("connexion.php"); |
26 | $requete = "SELECT count(*) FROM reservation WHERE | 27 | $requete = "SELECT count(*) FROM reservation WHERE |
@@ -29,29 +30,47 @@ | @@ -29,29 +30,47 @@ | ||
29 | $reponse = mysqli_fetch_array($exec_requete); | 30 | $reponse = mysqli_fetch_array($exec_requete); |
30 | $count = $reponse['count(*)']; | 31 | $count = $reponse['count(*)']; |
31 | if($count == 0){ | 32 | if($count == 0){ |
32 | - echo "Aucun banc d'essai n'a ete reservé"; | 33 | + echo "Aucun banc d'essai n'a été réservé"; |
33 | }else{ | 34 | }else{ |
34 | - echo "Vos reservations : <br>"; | 35 | + echo "<div class='px-4 py-4 my-5 text-center'>"; |
36 | + echo "Vos reservations ($identifiant) : <br>"; | ||
37 | + echo "</div>"; | ||
35 | $requete = "SELECT * FROM reservation WHERE | 38 | $requete = "SELECT * FROM reservation WHERE |
36 | personne = '".$identifiant."'"; | 39 | personne = '".$identifiant."'"; |
37 | $exec_requete = mysqli_query($db,$requete); | 40 | $exec_requete = mysqli_query($db,$requete); |
38 | $reponse = mysqli_fetch_all($exec_requete); | 41 | $reponse = mysqli_fetch_all($exec_requete); |
39 | foreach($reponse as $creneau){ | 42 | foreach($reponse as $creneau){ |
40 | - echo "<div>"; | 43 | + echo "<div class='px-4 py-4 my-5 text-center border-top'>"; |
41 | echo "Banc : $creneau[0] | Date : $creneau[1] $creneau[3]-$creneau[4]"; | 44 | echo "Banc : $creneau[0] | Date : $creneau[1] $creneau[3]-$creneau[4]"; |
42 | echo "<form method='POST' action='supprReservation.php?banc=$creneau[0]&moment=$creneau[1]&personne=$identifiant&heuredebut=$creneau[3]&heurefin=$creneau[4]'>"; | 45 | echo "<form method='POST' action='supprReservation.php?banc=$creneau[0]&moment=$creneau[1]&personne=$identifiant&heuredebut=$creneau[3]&heurefin=$creneau[4]'>"; |
43 | - echo "<button class='btn-lg btn-success' type='submit'>Supprimer la reservation</button>"; | 46 | + echo "<button class='btn-lg btn-danger' type='submit'>Supprimer la reservation</button>"; |
47 | + echo "</form>"; | ||
48 | + /* Utilisation pour accès aux reservations */ | ||
49 | + echo "<form method='POST' action='main.php'>"; | ||
50 | + date_default_timezone_set('Europe/Paris'); | ||
51 | + $ActualDate = date("d/m/Y",time()); | ||
52 | + if($ActualDate==$creneau[1]){ | ||
53 | + $ActualHour = date("h:i",time()); | ||
54 | + $Periode = date("a",time()); | ||
55 | + if($Periode=="pm"){ | ||
56 | + $newHour = explode(":",$ActualHour); | ||
57 | + $Heure = $newHour[0]+12; | ||
58 | + $ActualHour = "".$Heure.":".$newHour[1]; | ||
59 | + } | ||
60 | + if(!($creneau[3]<=$ActualHour && $ActualHour<$creneau[4])){ | ||
61 | + echo "<button class='btn-lg btn-outline-success' type='submit' disabled "; | ||
62 | + }else{ | ||
63 | + echo "<button class='btn-lg btn-success' type='submit'"; | ||
64 | + } | ||
65 | + }else{ | ||
66 | + echo "<button class='btn-lg btn-outline-success' type='submit' disabled "; | ||
67 | + } | ||
68 | + echo ">Acceder au banc</button>"; | ||
44 | echo "</form>"; | 69 | echo "</form>"; |
45 | echo "</div>"; | 70 | echo "</div>"; |
46 | } | 71 | } |
47 | } | 72 | } |
48 | mysqli_close($db); | 73 | mysqli_close($db); |
49 | - /* Utilisation pour accès aux reservations | ||
50 | - date_default_timezone_set('Europe/Paris'); | ||
51 | - $ActualDate = date("d/m/Y",time()); | ||
52 | - $ActualHour = date("h:i",time()); | ||
53 | - $Periode = date("a",time()); | ||
54 | - echo "Vrai date : ".$ActualDate." / Vrai heure = ".$ActualHour.$Periode."<br>"; */ | ||
55 | ?> | 74 | ?> |
56 | </body> | 75 | </body> |
57 | </html> | 76 | </html> |
html/reservation.php
@@ -14,6 +14,12 @@ | @@ -14,6 +14,12 @@ | ||
14 | </head> | 14 | </head> |
15 | <body> | 15 | <body> |
16 | <?php | 16 | <?php |
17 | + session_start(); | ||
18 | + if(isset($_SESSION['identifiant'])){ | ||
19 | + $identifiant = $_SESSION['identifiant']; | ||
20 | + }else{ | ||
21 | + echo "<meta http-equiv=\"refresh\" content=\"0;url=index.html\">"; | ||
22 | + } | ||
17 | include("connexion.php"); | 23 | include("connexion.php"); |
18 | $requete = "SELECT * FROM banc ORDER BY numero"; | 24 | $requete = "SELECT * FROM banc ORDER BY numero"; |
19 | $exec_requete = mysqli_query($db,$requete); | 25 | $exec_requete = mysqli_query($db,$requete); |
@@ -21,16 +27,16 @@ | @@ -21,16 +27,16 @@ | ||
21 | mysqli_close($db); | 27 | mysqli_close($db); |
22 | ?> | 28 | ?> |
23 | <form method="POST" action="menu.php"> | 29 | <form method="POST" action="menu.php"> |
24 | - <button class="btn-lg btn-success" type="submit">Retour au menu</button> | 30 | + <button class="btn-lg btn-secondary" type="submit">Retour au menu</button> |
25 | </form> | 31 | </form> |
26 | <form method="POST" action="ajoutReservation.php"> | 32 | <form method="POST" action="ajoutReservation.php"> |
27 | <div> | 33 | <div> |
28 | - <input type="date" name="txtDate" id="txtDate" onclick="minimum();" required> | 34 | + <input type="date" name="txtDate" id="txtDate" onclick="minimum();" onchange="dispo_creneau();" required> |
29 | </div> | 35 | </div> |
30 | 36 | ||
31 | <div> | 37 | <div> |
32 | Banc choisi : | 38 | Banc choisi : |
33 | - <select class="form-select" name="banc" id="banc" required> | 39 | + <select class="form-select" name="banc" id="banc" onchange="dispo_creneau();" required> |
34 | <?php | 40 | <?php |
35 | foreach($reponse as $value){ | 41 | foreach($reponse as $value){ |
36 | echo '<option value="'.$value[0].'">'.$value[0].'</option>'; | 42 | echo '<option value="'.$value[0].'">'.$value[0].'</option>'; |
@@ -42,30 +48,30 @@ | @@ -42,30 +48,30 @@ | ||
42 | <div> | 48 | <div> |
43 | Heure de début du créneau : | 49 | Heure de début du créneau : |
44 | <select class="form-select" name="heure" id="heure" onchange='calcul_fin();' required> | 50 | <select class="form-select" name="heure" id="heure" onchange='calcul_fin();' required> |
45 | - <option value="0" selected> 00h00 </option> | ||
46 | - <option value="1"> 01h00 </option> | ||
47 | - <option value="2"> 02h00 </option> | ||
48 | - <option value="3"> 03h00 </option> | ||
49 | - <option value="4"> 04h00 </option> | ||
50 | - <option value="5"> 05h00 </option> | ||
51 | - <option value="6"> 06h00 </option> | ||
52 | - <option value="7"> 07h00 </option> | ||
53 | - <option value="8"> 08h00 </option> | ||
54 | - <option value="9"> 09h00 </option> | ||
55 | - <option value="10"> 10h00 </option> | ||
56 | - <option value="11"> 11h00 </option> | ||
57 | - <option value="12"> 12h00 </option> | ||
58 | - <option value="13"> 13h00 </option> | ||
59 | - <option value="14"> 14h00 </option> | ||
60 | - <option value="15"> 15h00 </option> | ||
61 | - <option value="16"> 16h00 </option> | ||
62 | - <option value="17"> 17h00 </option> | ||
63 | - <option value="18"> 18h00 </option> | ||
64 | - <option value="19"> 19h00 </option> | ||
65 | - <option value="20"> 20h00 </option> | ||
66 | - <option value="21"> 21h00 </option> | ||
67 | - <option value="22"> 22h00 </option> | ||
68 | - <option value="23"> 23h00 </option> | 51 | + <option value="0" id="0" selected> 00h00 </option> |
52 | + <option value="1" id="1"> 01h00 </option> | ||
53 | + <option value="2" id="2"> 02h00 </option> | ||
54 | + <option value="3" id="3"> 03h00 </option> | ||
55 | + <option value="4" id="4"> 04h00 </option> | ||
56 | + <option value="5" id="5"> 05h00 </option> | ||
57 | + <option value="6" id="6"> 06h00 </option> | ||
58 | + <option value="7" id="7"> 07h00 </option> | ||
59 | + <option value="8" id="8"> 08h00 </option> | ||
60 | + <option value="9" id="9"> 09h00 </option> | ||
61 | + <option value="10" id="10"> 10h00 </option> | ||
62 | + <option value="11" id="11"> 11h00 </option> | ||
63 | + <option value="12" id="12"> 12h00 </option> | ||
64 | + <option value="13" id="13"> 13h00 </option> | ||
65 | + <option value="14" id="14"> 14h00 </option> | ||
66 | + <option value="15" id="15"> 15h00 </option> | ||
67 | + <option value="16" id="16"> 16h00 </option> | ||
68 | + <option value="17" id="17"> 17h00 </option> | ||
69 | + <option value="18" id="18"> 18h00 </option> | ||
70 | + <option value="19" id="19"> 19h00 </option> | ||
71 | + <option value="20" id="20"> 20h00 </option> | ||
72 | + <option value="21" id="21"> 21h00 </option> | ||
73 | + <option value="22" id="22"> 22h00 </option> | ||
74 | + <option value="23" id="23"> 23h00 </option> | ||
69 | </select> | 75 | </select> |
70 | </div> | 76 | </div> |
71 | 77 | ||
@@ -74,7 +80,7 @@ | @@ -74,7 +80,7 @@ | ||
74 | </div> | 80 | </div> |
75 | 81 | ||
76 | <div> | 82 | <div> |
77 | - <button class="btn-lg btn-primary" type="submit">Reserver</button> | 83 | + <button class="btn-lg btn-success" type="submit">Reserver</button> |
78 | </div> | 84 | </div> |
79 | </form> | 85 | </form> |
80 | 86 | ||
@@ -90,7 +96,6 @@ | @@ -90,7 +96,6 @@ | ||
90 | day='0'+day.toString(); | 96 | day='0'+day.toString(); |
91 | 97 | ||
92 | var minDate=year.toString()+'-'+month+'-'+day; | 98 | var minDate=year.toString()+'-'+month+'-'+day; |
93 | - console.log(minDate); | ||
94 | var txtdate=document.getElementById('txtDate'); | 99 | var txtdate=document.getElementById('txtDate'); |
95 | txtdate.min=minDate; | 100 | txtdate.min=minDate; |
96 | } | 101 | } |
@@ -106,6 +111,47 @@ | @@ -106,6 +111,47 @@ | ||
106 | var h=valeur.toString(); | 111 | var h=valeur.toString(); |
107 | lafin.textContent=h+"h00"; | 112 | lafin.textContent=h+"h00"; |
108 | } | 113 | } |
114 | + function dispo_creneau(){ | ||
115 | + var txtDate = document.getElementById('txtDate'); | ||
116 | + var newBanc = document.getElementById('banc'); | ||
117 | + var realBanc = newBanc.value; | ||
118 | + var valDate = txtDate.value.split("-"); | ||
119 | + var year = valDate[0]; | ||
120 | + var month = valDate[1]; | ||
121 | + var day = valDate[2]; | ||
122 | + var realDate = day+"/"+month+"/"+year; | ||
123 | + var xhttp = new XMLHttpRequest(); | ||
124 | + var params = "date="+realDate+"&banc="+realBanc; | ||
125 | + console.log(params); | ||
126 | + xhttp.onreadystatechange=function(){ | ||
127 | + if(xhttp.readyState==4){ | ||
128 | + // Si requete faite, on modifie les horaires non dispo | ||
129 | + var elemId; | ||
130 | + var texte=xhttp.responseText.split("-"); | ||
131 | + if(texte.length>1){ | ||
132 | + for(var i=0;i<texte.length-1;i++){ | ||
133 | + if(texte[i][0]==0){ | ||
134 | + elemId=texte[i][1]; | ||
135 | + }else{ | ||
136 | + elemId=texte[i][0]+texte[i][1]; | ||
137 | + } | ||
138 | + var chgt = document.getElementById(elemId); | ||
139 | + chgt.disabled=true; | ||
140 | + chgt.style.color="red"; | ||
141 | + } | ||
142 | + }else{ | ||
143 | + for(var i=0;i<24;i++){ | ||
144 | + var chgt = document.getElementById(i); | ||
145 | + chgt.disabled=false; | ||
146 | + chgt.style.color="black"; | ||
147 | + } | ||
148 | + } | ||
149 | + } | ||
150 | + } | ||
151 | + xhttp.open('POST','dispoCreneau.php',true); | ||
152 | + xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); | ||
153 | + xhttp.send(params); | ||
154 | + } | ||
109 | </script> | 155 | </script> |
110 | </body> | 156 | </body> |
111 | </html> | 157 | </html> |