11. december 2001 - 13:02Der er
5 kommentarer og 1 løsning
fejl i mødebookingsystem
Hej Eksperter,
Vi har et mødebookningsystem, hvorpå man kan reservere et af vores 4 mødelokaler. Problemet opstår når nogen aflyser et møde i systemet. Vores kantine skal modtage en e-mail som fortæller at mødet er blevet aflyst. Det gør den også men systemet skriver konstant et bestemt mødelokale (gult mødelokale)fremfor det der i realiteten er blevet aflyst.
Koden er i asp og databasen er access 97. Det virker ikke som om der er nogle forkerte referancer i databasen.
Jeg går udfra at det er i reservationens deletemeeting.asp den er gal med.
Dim objRS2, objConnection2 Set objConnection2 = Server.CreateObject(\"ADODB.Connection\") objConnection2.Open \"DSN=reservation;Database=reservation;UID=;PWD=;\" Set objConnection2 = objConnection2.Execute(\"DELETE FROM Reservation WHERE id=\" & Request.QueryString(\"id\") & \"\")
if Request.QueryString(\"loc\") <> \"\" then
Dim objMail, aRecipients Set objMail = Server.CreateObject(\"CDONTS.NewMail\")
objMail.From = \"modebooking@hep.dk\" objMail.To = \"kantinen@hep.dk\" objMail.Subject = \"Annullering af bestilling den \" & Request.QueryString(\"Date\") & \" i \" & Request.QueryString(\"loc\") objMail.Body = \"Mødet er blevet aflyst. Nedenstående reservation bedes derfor annulleret:\" & chr(13) & chr(13) & replace(Request.QueryString(\"Mail\"),\"||\", chr(13)) objMail.Send end if
du efterspørger (så vidt jeg kan se) lokalet ud fra adressefeltet - altså querystringen - altså må der føres en forkert lokale-farve med fra den forrige side!
Dim objConnDay, objRSDay Dim objConnReservation, objRSReservation Set objConnDay = Server.CreateObject(\"ADODB.Connection\") objConnDay.Open \"DSN=reservation;Database=reservation;UID=;PWD=;\" Set objRSDay = objConnDay.Execute(\"SELECT * FROM DaySetup WHERE day=\" & weekday(session(\"selectedDate\"),2) & \";\")
Dim strInit, strMessage, strLocation, strFromDate, strFromTimeH, strFromTimeM, strToTimeH, strToTimeM, item, strMail Dim boolUpdate, boolLocation
if Request.QueryString(\"mode\") <> \"edit\" then strInit = Request.QueryString(\"init\") strMessage = Request.QueryString(\"message\") strLocation = Request.QueryString(\"location\") if strLocation = \"*\" or strLocation = \"\" then for each item in Request.QueryString if instr(item,\"loc\") then strLocation = Request.QueryString(item) end if next end if strFromDate = Request.QueryString(\"fromDate\") strFromTimeH = Request.QueryString(\"fromTimeH\") strFromTimeM = Request.QueryString(\"fromTimeM\") strToTimeH = Request.QueryString(\"toTimeH\") strToTimeM = Request.QueryString(\"toTimeM\") strMail = Request.QueryString(\"mail\") else Set objConnReservation = Server.CreateObject(\"ADODB.Connection\") objConnReservation.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" Set objRSReservation = objConnReservation.Execute(\"SELECT * FROM Reservation WHERE date = \" & clng(session(\"selectedDate\")) & \" AND id=\" & Request.QueryString(\"id\") & \";\")
if Request.QueryString(\"mode\") <> \"edit\" and strLocation <> \"\" and strFromDate <> \"\" and strFromTimeH <> \"\" And strFromTimeM <> \"\" and strToTimeH <> \"\" And strToTimeH <> \"\" then Dim objRS2, objConnection2
if Request.QueryString(\"editdelete\") <> \"\" then Set objConnection2 = Server.CreateObject(\"ADODB.Connection\") objConnection2.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" Set objRS2 = objConnection2.Execute(\"DELETE FROM Reservation WHERE id=\" & Request.QueryString(\"editdelete\") & \"\") Set objRS2 = Nothing : Set objConnection2 = Nothing
for i = 0 to 50000 Response.Write \" \" next
end if \'Gemmer reservation for each item in Request.QueryString if instr(item,\"loc\") and Request.QueryString(item) <> \"*\" then boolUpdate = true Set objConnReservation = Server.CreateObject(\"ADODB.Connection\") objConnReservation.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" Set objRSReservation = objConnReservation.Execute(\"SELECT * FROM Reservation WHERE date = \" & clng(cdate(formatdatetime(session(\"selectedDate\"),2))) & \" AND location=\" & Request.QueryString(item) & \"\")
do while not objRSReservation.EOF if formatdatetime(cdate(objRSReservation(\"fromTime\")),4) => formatdatetime(strFromTimeH & \":\" & strFromTimeM,4) and formatdatetime(objRSReservation(\"fromTime\"),4) < formatdatetime(strToTimeH & \":\" & strToTimeM,4) then session(\"error\") = \"Du kan ikke lave denne reservation da den overlapper en eksisterende reservation\" boolUpdate = false end if if formatdatetime(cdate(objRSReservation(\"toTime\")),4) > formatdatetime(strFromTimeH & \":\" & strFromTimeM,4) and formatdatetime(objRSReservation(\"toTime\"),4) <= formatdatetime(strToTimeH & \":\" & strToTimeM,4) then session(\"error\") = \"Du kan ikke lave denne reservation da den overlapper en eksisterende reservation\" boolUpdate = false end if if formatdatetime(cdate(objRSReservation(\"fromTime\")),4) <= formatdatetime(strFromTimeH & \":\" & strFromTimeM,4) and formatdatetime(cdate(objRSReservation(\"toTime\")),4) > formatdatetime(strFromTimeH & \":\" & strFromTimeM,4) then session(\"error\") = \"Du kan ikke lave denne reservation da den overlapper en eksisterende reservation\" boolUpdate = false end if objRSReservation.MoveNext loop if boolUpdate = true then Set objConnection2 = Server.CreateObject(\"ADODB.Connection\") objConnection2.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" set objRS2 = Server.CreateObject(\"ADODB.Recordset\")
if cint(strToTimeH) = cint(left(formatdatetime(objRSDay(\"showToTime\"),4),2)) + 1 then strToTimeM=\"00\" end if
objRS2.AddNew objRS2(\"init\") = strInit objRS2(\"message\") = strMessage objRS2(\"location\") = cint(Request.QueryString(item)) objRS2(\"Date\") = strFromDate objRS2(\"fromTime\") = strFromTimeH & \":\" & strFromTimeM objRS2(\"toTime\") = strToTimeH & \":\" & strToTimeM if cint(Request.QueryString(item)) >= 2 and cint(Request.QueryString(item)) <= 5 then objRS2(\"email\") = strMail end if objRS2.Update
session(\"selectedDate\") = strFromDate
objRS2.close : objConnection2.close Set objRS2 = Nothing : Set objConnection2 = Nothing end if
end if next
if strMail <> \"\" then
Set objConn = Server.CreateObject(\"ADODB.Connection\") objConn.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" Set objRS = objConn.Execute(\"SELECT * FROM Locations WHERE id = \" & strLocation & \" ORDER BY id\")
Dim objMail, aRecipients Set objMail = Server.CreateObject(\"CDONTS.NewMail\")
Dim i Set objConn = Server.CreateObject(\"ADODB.Connection\") objConn.Open \"DSN=reservation;Database=reservation;UID=sa;PWD=;\" Set objRS = objConn.Execute(\"SELECT * FROM Locations WHERE locName <> \'Tid\' ORDER BY id\") %> <html><head><title>Ny reservation</title><LINK rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"> <script LANGUAGE=\"JavaScript\"> <!-- // function deleteThis(id){ if (newRes.oldmail.value != \"\"){ alert(\"Kantinebestillingen er blevet afmeldt!\") document.location = (\"delete.asp?id=\" + id + \"&loc=<%=objRS(\"locName\")%>&Date=<%=strFromDate%>&mail=<%=replace(replace(replace(replace(strMail & \" \", chr(13), \"||\"), chr(10), \"||\"), \"\'\", \"\"), chr(34), \"\")%>\"); } else{ document.location = (\"delete.asp?id=\" + id); } return true; }
function Validate(){ if (newRes.init.value == \"\"){ alert(\"Du skal angive dine initialer\") newRes.init.focus(this); return true; } if (newRes.oldmail.value != \"\" && newRes.mail.value != \"\"){ if (newRes.oldmail.value != newRes.mail.value){ if (confirm(\"Ønsker du at sende en ny mail til kantinen?\")){
} else { newRes.mail.value = newRes.oldmail.value } } } newRes.submit(); } // --> </script> </head><body onload=\"java script:document.newRes.init.focus();\"><h1><img src=\"images/newres.gif\" vspace=2 align=absbottom hspace=2> Ny reservation</h1> <table width=380 border=0><tr><td width=180 bgcolor=CCCCCC style=\"padding: 5;\"> <form name=newRes action=./newRes.asp method=get> <%if Request.QueryString(\"mode\") = \"edit\" then%> <Input type=\"hidden\" name=editdelete value=<%=Request.QueryString(\"id\")%>> <%end if%> Initialer:<br> <INPUT type=\"text\" name=init size=3 value=\"<%=strInit%>\"><br><br> Reservationsbeskrivelse:<br> <INPUT type=\"text\" name=message size=25 value=\"<%=strMessage%>\"><br><br> Reservér:<br> <SELECT name=location><option value=\"*\"></option><% do while not objRS.EOF if cint(objRS(\"accessories\")) = 0 then Response.Write \"<option value=\" & objRS(\"id\") if strLocation = CStr(objRS(\"id\")) then Response.Write \" selected\" Response.Write \">\" & objRS(\"locName\") & \"</option>\" end if objRS.MoveNext Loop objRS.MoveFirst %></SELECT><br><br> Dato:<br> <INPUT type=\"text\" size=10 name=fromDate value=<%=session(\"selectedDate\")%>><br><br> Starttidspunkt:<br> <SELECT name=fromTimeH><% for i = cint(left(formatdatetime(objRSDay(\"showFromTime\"),4),2)) to cint(left(formatdatetime(objRSDay(\"showToTime\"),4),2)) Response.Write \"<OPTION value=\" & i if strFromTimeH <> \"\" then if i = cint(strFromTimeH) then Response.Write \" selected\" end if elseif i = 8 then Response.Write \" selected\" end if if i < 10 then Response.Write \">0\" & i else Response.Write \">\" & i end if Response.Write \"</OPTION>\" next %></SELECT><SELECT name=fromTimeM><% for i = 0 to 1 Response.Write \"<OPTION value=\" & i * 30 if strFromTimeM <> \"\" then if cint(strFromTimeM) = i * 30 then Response.Write \" selected\" end if end if if i = 0 then Response.Write \">00\" else Response.Write \">\" & i * 30 end if Response.Write \"</OPTION>\" next
%></SELECT> <br><br> Sluttidspunkt:<br> <SELECT name=toTimeH><% for i = cint(left(formatdatetime(objRSDay(\"showFromTime\"),4),2)) to cint(left(formatdatetime(objRSDay(\"showToTime\"),4),2)) + 1 Response.Write \"<OPTION value=\" & i if strFromTimeH <> \"\" then if strToTimeH <> \"\" then if i = cint(strToTimeH) then Response.Write \" selected\" end if else if i = cint(strFromTimeH) + 1 then Response.Write \" selected\" end if end if elseif i = 9 then Response.Write \" selected\" end if if i < 10 then Response.Write \">0\" & i else Response.Write \">\" & i end if Response.Write \"</OPTION>\" next %></SELECT><SELECT name=toTimeM><% for i = 0 to 1 Response.Write \"<OPTION value=\" & i * 30 if strFromTimeM <> \"\" then if strToTimeM = \"\" then if cint(strFromTimeM) = i * 30 then Response.Write \" selected\" end if else if i * 30 = cint(strToTimeM) then Response.Write \" selected\" end if end if end if if i = 0 then Response.Write \">00\" else Response.Write \">\" & i * 30 end if Response.Write \"</OPTION>\" next
%></SELECT> </td><td width=2></td><td valign=top bgcolor=#CCCCCC style=\"padding: 5;\">Reservér udstyr:<br><% do while not objRS.EOF if cint(objRS(\"accessories\")) = 99 then %> <INPUT type=\"checkbox\" name=\"loc<%=objRS(\"id\")%>\" value=<%=objRS(\"id\")%><% if strLocation = cstr(objRS(\"id\")) then Response.Write \" Checked\" %>><%=objRS(\"locName\")%><br><% end if objRS.MoveNext loop %> <br><br> Besked til kantinen: <img src=images/plate.gif><br> <input type=hidden name=oldmail value=\"<%=strMail%>\"> <TEXTAREA rows=9 cols=30 name=mail><%=strMail%></TEXTAREA> </td></tr></table> <p align=right> <INPUT type=\"button\" value=\"Gem\" onClick=\"Validate();\" style=\"width=60\" name=submitNewRes> <%if Request.QueryString(\"mode\") = \"edit\" then%> <INPUT type=\"button\" onClick=\"deleteThis(<%=Request.QueryString(\"id\")%>);\" value=\"Slet\" style=\"width=60\" name=btnDelete> <%end if%></p></form><% objRS.close : objConn.close Set objRS = Nothing : Set objConn = Nothing end if%>
ARGH!! det er jo umuligt at se noget ud fra så lang en kode... det skal jo kunne ses og testes - og der er grænser for hvor meget tid jeg vil bruge
er det rigtigt, at der føres lokalefarven med i querystringen? - hvis ja, så skal du ind og kigge på hvorfor farven der bliver ført med er forkert... om det er et udtræk fra databasen, om den kommer fra en anden side eller et helt andet sted.
jeg ved ikke om det er dig der har lavet det eller en anden - dette ville måske også være nyttig info for mig
Farven bliver udtrukket fra databasen. Jeg kan desværre ikke komme med så meget hjælp, da det ikke er mig som har lavet systemet. Hver farve har hvert deres id i databasen, så jeg går udfra at det er et kald som er forkert.
Jeg har stadig ikke kunnet finde en løsning på problemet, men du skal have en stor tak for dit input keysersoze!
Takker og god weekend
Hilsen Morton
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.