31. marts 2003 - 14:55
Der er
11 kommentarer og 1 løsning
Overførsel af af sessionsvariabel .asp
Kære Orakel, på forhånd tak for hjælpen..!! Jeg har et asp script der checker for brugernavn og password. Dette sker igennem en sessionsvariabel og dette fungere OK. Brugeren har nu mulighed for at lave et indlæg der gemmes i en DB, til dette har jeg oprettet et asp script der gemmer informationerne fra en form. Dette fungere osse fint. Nu vil jeg have at gem funktionen automatisk skriver brugernavnet til DB og dette havde jeg regnet med at gøre med en sessionsvariabel, jeg kan bare ikke få det til at fungere. Jeg har brug for at vide hvordan jeg definerer sessionsvariablen i "login" scriptet og hvordan jeg henter den igen når jeg kører"gem" funktionen. Her er de to scripts jeg bruger, først login scriptet og efterfølgende gem funktionen. logincheck: <% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb") If Request("mode") = "Check" then Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function ' Gemmer formfelterne i Variabler strUsername = unQuote(request("username")) strPassword = unQuote(request("password")) Sql = "Select Count(*) as Found from user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = response.Redirect("/default.asp?page=245") else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = "yes mate" response.redirect "../default.asp" EZ.Close RS.Close myConn.Close end if end if%> <form method="POST" action="/password/login.asp"> <input type="hidden" name="mode" value="Check"> Brugernavn: <input type='text' name='username'' value="<%=strbrugernavn%>"> Password: <input type="password" value="<%=strpassword%>" name="password"> <input type="reset" value="Slet" name="reset"> <input type="submit" value=" Log In " name="submit"> <%=error%> </form> Og "gem" scriptet <%@ LANGUAGE="VBSCRIPT"%> Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionTimeout = 15 Conn.CommandTimeout = 30 Conn.Open ("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")) id = Request.querystring("id") Set cmdTemp = Server.CreateObject("ADODB.Command") Set RS = Server.CreateObject("ADODB.Recordset") cmdTemp.CommandText = "SELECT nyhed.* FROM nyhed" cmdTemp.CommandType = 1 Set cmdTemp.ActiveConnection = Conn RS.Open cmdTemp, , 3, 3 RS.AddNew RS("opretId") = "her skal brugernavnet tilføjes" RS("dato")= FormatDateTime(now, vbLongDate) RS("overskrift") = Request.Form("overskrift") RS("appetit") = Request.Form("appetit") RS("nyhed") = Request.Form("nyhed") RS.Update RS.Close SET RS = Nothing Conn.Close SET Conn = Nothing %> <%Response.Clear%> <%Response.Redirect"oversigt.asp"%> <%Response.End%>
Annonceindlæg fra Kingston Technology
31. marts 2003 - 15:00
#1
<% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb") If Request("mode") = "Check" then Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function ' Gemmer formfelterne i Variabler strUsername = unQuote(request("username")) strPassword = unQuote(request("password")) Sql = "Select Count(*) as Found from user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = response.Redirect("/default.asp?page=245") else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = ev("username") response.redirect "../default.asp" EZ.Close RS.Close myConn.Close end if end if%> <form method="POST" action="/password/login.asp"> <input type="hidden" name="mode" value="Check"> Brugernavn: <input type='text' name='username'' value="<%=strbrugernavn%>"> Password: <input type="password" value="<%=strpassword%>" name="password"> <input type="reset" value="Slet" name="reset"> <input type="submit" value=" Log In " name="submit"> <%=error%> </form> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionTimeout = 15 Conn.CommandTimeout = 30 Conn.Open ("Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")) id = Request.querystring("id") Set cmdTemp = Server.CreateObject("ADODB.Command") Set RS = Server.CreateObject("ADODB.Recordset") cmdTemp.CommandText = "SELECT nyhed.* FROM nyhed" cmdTemp.CommandType = 1 Set cmdTemp.ActiveConnection = Conn RS.Open cmdTemp, , 3, 3 RS.AddNew RS("opretId") = Session("login") RS("dato")= FormatDateTime(now, vbLongDate) RS("overskrift") = Request.Form("overskrift") RS("appetit") = Request.Form("appetit") RS("nyhed") = Request.Form("nyhed") RS.Update RS.Close SET RS = Nothing Conn.Close SET Conn = Nothing %> <%Response.Clear%> <%Response.Redirect"oversigt.asp"%> <%Response.End%>
31. marts 2003 - 15:33
#2
HVis jeg udskifter Session("login") = "yes mate" med Session("login") = ev("username") virker logInnet ikke længere. Jeg er ikke særlig meget inde i asp, men kan man ikke ændre check funktionen så sammenligningsparameteren bliver noget andet end "yes mate"?????
31. marts 2003 - 15:45
#3
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb") If Request("mode") = "Check" then Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function ' Gemmer formfelterne i Variabler strUsername = unQuote(request("username")) strPassword = unQuote(request("password")) Sql = "Select * from user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO.EOF Then Session("login") = "" error = response.Redirect("/default.asp?page=245") else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = ev("username") response.redirect "../default.asp" EZ.Close RS.Close myConn.Close end if end if %>
31. marts 2003 - 16:02
#4
Hmmm den vil stadig ikke acceptere log innet, den kommer med en fejl side
31. marts 2003 - 16:06
#5
hvilken fejlside?
31. marts 2003 - 16:15
#6
Kan jeg ikke se da jeg afvikler direkte på den "rigtige" server. Men DL lige siden og tester.
31. marts 2003 - 16:28
#7
Fejltype: Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D) Typer stemmer ikke overens: 'ev' /password/login.asp, line 29
31. marts 2003 - 16:35
#8
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/database.mdb") If Request("mode") = "Check" then Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function ' Gemmer formfelterne i Variabler strUsername = unQuote(request("username")) strPassword = unQuote(request("password")) Sql = "Select * from user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO.EOF Then Session("login") = "" error = response.Redirect("/default.asp?page=245") else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("login") = ez("username") response.redirect "../default.asp" ez.Close RS.Close myConn.Close end if end if %>
31. marts 2003 - 19:35
#9
Her sker der lidt underlige ting systemet opfører sig om, at man logger ind men man kan ikke komme ind på sider der kræver log in. JEg kan ikke komme ind på den side hvor jeg skal lave indlæg.
31. marts 2003 - 19:45
#10
hvilken kode bruger til at tjecke login med på de andre sider???
31. marts 2003 - 19:46
#11
Så kører det, du får pointene for godt arbejde....:-)
31. marts 2003 - 20:06
#12
takker :o)
Kurser inden for grundlæggende programmering