Bonjour tout le monde,
Je rencontre un gros problème avec mon application de réservation de salle.
Le problème se pose quand je veux supprimer une réservation.
La personne qui entre sur le site doit s'identifier, son login est récupéré dans une variable de session.
Lorsque le visiteur à choisi le jour, le mois, l'heure de début et l'heure de fin, il a le choix entre deux boutons avec deux actions différentes.
Le premier, réserver, reserve la salle, ça fonctionne.
Le second "supprimer une réservation" devrait supprimer la réservation si la valeur de rst2 est = à la valeur de la variable de session login.
Mais ça ne foncionne pas.
Quand j'arrive sur ma page principale, j'ai fais restponse.write(Session("loginprof") et cela me donne par exemple dfontain.
Donc ça prouve que la variable de session fonctionne.
Je choisi le jour, le mois, l'heure de début et l'heure de fin, j'appuie sur le bouton "Supprimer une réservation" et ce code s'enclenche :
J'ai fais un response.write(checksql) et j'obtiens ceci si je réserve la salle le 11 mai de 8 à 13h00 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 do while hfdebut2 <= hffin2 If len(hfdebut2) < 2 then hfdebut2 = 0 & hfdebut2 End if checkSQL = "select [" & hfdebut2 & "] as debut from " & hfmois & " where jour = '" & hfjour & "' " rst2.open checkSQL, "RSI" response.Write(checkSQL) 'response.Write(rst2("debut")) 'response.Write(Session("loginprof")) response.write ("rst2 vaut " & rst2("debut")) if rst2("debut") <> Session("loginprof") then %> <script language= "javascript"> history.go(-1) alert('Vous ne pouvez pas supprimer la réservation de quelqu\'un d\'autre, opération annulée') ; </script> <% response.End() exit do end if hfdebut2 = hfdebut2 + 1 rst2.Close loop dim selecttable selecttable = "" selecttable = "update " & hfmois & " set " & hfdebut & " = '' WHERE jour = '"& hfjour & "' " 'response.Write("ICI" & selecttable) cnn.Execute(selecttable) hffin = hffin - 1 If len(hffin) < 2 then hffin = 0 & hffin End If selecttable = "" selecttable = "update " & hfmois & " set " & hffin & " = '' WHERE jour = '"& hfjour & "' " 'response.Write("ICI" & selecttable) cnn.Execute(selecttable) dim i 'i = à la valeur de la variable hffin, variable qui contient la valeur du champ HTML de la liste déroulante hffin 'i est un compteur uniquement. 'response.Write("hffin - 1 vaut " & hffin) 'hffin = hffin - 1 i = hffin 'response.Write(hffin) 'response.Write("i vaut " & i) 'fait tant que i (hffin) est supérieur à l'heure de début do until i = cint(hfdebut) 'response.write(cInt(hfdebut)) 'response.Write(hfdebut) if i = "07" then exit do End if 'tu met à jour la table 'response.Write(i) selecttable = "update " & hfmois & " set " & i & " = '' WHERE jour = '"& hfjour & "' " 'response.Write(selecttable) 'il faut exécuter à chaque fois et non faire un update globale autrement ça plante cnn.Execute(selecttable) 'je retitre de i 1 (donc hffin = hffin - 1) i = i-1 if len(i) = 1 then i = "0" & i End if loop Set rst2 = Nothing %>
Bizzarement, mon rst2 vaut n'a aucune valeur.dfontain select [08] as debut from mai where jour = '11' rst2 vaut dfontainselect [09] as debut from mai where jour = '11' rst2 vaut dfontainselect [10] as debut from mai where jour = '11' rst2 vaut dfontainselect [11] as debut from mai where jour = '11' rst2 vaut dfontainselect [12] as debut from mai where jour = '11' rst2 vaut dfontainselect [13] as debut from mai where jour = '11' rst2 vaut
Est-ce que vous pourriez m'aider svp ?
Merci d'avance.
Edit: complément d'information :
Si j'essaie de supprimer une réservation faite par mvandamm quand la variable de session contient mvandamm, il efface tout mais le résultat du response.wrte(checksql) me donne ceci :
On dirait donc qu'il dit que rst2("debut") ne vaut pas "mvandamm" alors qu'il le vaut bien mais il continue quand même le code.select [08] as debut from janvier where jour = '18' rst2 vaut stop
car
et il fait ce code qui est plus bas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if rst2("debut") <> Session("loginprof") then response.write("stop") response.End() exit do
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 dim selecttable selecttable = "" selecttable = "update " & hfmois & " set " & hfdebut & " = '' WHERE jour = '"& hfjour & "' " 'response.Write("ICI" & selecttable) cnn.Execute(selecttable) hffin = hffin - 1 If len(hffin) < 2 then hffin = 0 & hffin End If selecttable = "" selecttable = "update " & hfmois & " set " & hffin & " = '' WHERE jour = '"& hfjour & "' " 'response.Write("ICI" & selecttable) cnn.Execute(selecttable) dim i 'i = à la valeur de la variable hffin, variable qui contient la valeur du champ HTML de la liste déroulante hffin 'i est un compteur uniquement. 'response.Write("hffin - 1 vaut " & hffin) 'hffin = hffin - 1 i = hffin 'response.Write(hffin) 'response.Write("i vaut " & i) 'fait tant que i (hffin) est supérieur à l'heure de début do until i = cint(hfdebut) 'response.write(cInt(hfdebut)) 'response.Write(hfdebut) if i = "07" then exit do End if 'tu met à jour la table 'response.Write(i) selecttable = "update " & hfmois & " set " & i & " = '' WHERE jour = '"& hfjour & "' " 'response.Write(selecttable) 'il faut exécuter à chaque fois et non faire un update globale autrement ça plante cnn.Execute(selecttable) 'je retitre de i 1 (donc hffin = hffin - 1) i = i-1 if len(i) = 1 then i = "0" & i End if loop Set rst2 = Nothing %>
beegees
Partager