14. juli 2004 - 10:35Der er
31 kommentarer og 3 løsninger
Få login til at sende bruger tilbage til den side han kom fra
Jeg er ved at lege med et forum. Jeg har lavet ådan at anonyme brugere kan læse grupper og se tråde... men ikke de indlæg der er i trådene. Hvis de klikker på en tråde bli'r de sendt til en login side. De redirecter så til forum.asp igen... jeg vil gerne ha' at de, istedet for at komme til forum forsiden, kommer til den side der sendte dem til login.
<% if not session("login") = "1" Then response.redirect "login.asp?r="&server.urlencode(request.servervariables("script_name")&"?"&request.querystring) end if %>
Hvis det hele foregår i én fil så virker det nu fint... men hvis du eks. har login.asp og så når du poster bliversendt til checklogin.asp så vil den sende brugeren tilbage til login.asp mn hvis du nu havde hele scriptet kørende i login.asp ville den sende brugeren tilbage til den korrekte side..
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 = "Du blev ikke godkendt af systemet" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set conn = Server.CreateObject("ADODB.Connection") conn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = conn.Execute(strSQL) response.Redirect(request.ServerVariables("HTTP_REFERER")) Response.Redirect "forum.asp" EZ.Close RS.Close Conn.Close end if end if %>
<% SET RS = Server.CreateObject("ADODB.Connection") RS.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") if(len(request.querystring("r"))>0) then session("r")=request.querystring("r") end if If Request("mode") = "Check" then
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
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 = "Du blev ikke godkendt af systemet" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set conn = Server.CreateObject("ADODB.Connection") conn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = conn.Execute(strSQL) if(len(session("r"))=0) then 'forum default response.Redirect("forum.asp") else dim r : r = session("r") session("r")="" response.Redirect(r) end if
Response.Redirect "forum.asp" EZ.Close RS.Close Conn.Close end if end if %>
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 = "Du blev ikke godkendt af systemet" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set conn = Server.CreateObject("ADODB.Connection") conn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = conn.Execute(strSQL) Session("login") = ez("admin") response.Redirect(request.ServerVariables("HTTP_REFERER")) EZ.Close RS.Close Conn.Close end if end if %>
Så er der lige den her... ;-) Det nok ikke den bedste metode men den virker.. <% 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
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 = "Du blev ikke godkendt af systemet" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb") Set conn = Server.CreateObject("ADODB.Connection") conn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') and (password ='" & Request("password") & "')" Set ez = conn.Execute(strSQL) Session("login") = ez("admin") %> <script language=javascript> history.go(-3) </script> <% EZ.Close RS.Close Conn.Close end if end if %>
Ja, det er derfor jeg overfører sidenavn (request.servervariables("script_name")) same querystring som r , gemmer det i en session og sender brugeren tilbage til den side hvis man er godkendt af systemet :
if(len(session("r"))=0) then 'forum default response.Redirect("forum.asp") else dim r : r = session("r") session("r")="" response.Redirect(r) end if
<% if not session("login") = "1" Then response.redirect "login.asp?r="&server.urlencode(request.servervariables("script_name")&"?"&request.querystring) end if %>
<% if not session("login") = "1" Then response.redirect "login.asp?r="&server.urlencode(request.servervariables("script_name")&"?"&request.querystring) end if %>
Hvis den bliver på login.asp tyder det på at den aldrig kommer ind i valierings scriptet. Prøv at indsætte response.write(Request("mode") = "Check") i starten af siden, den skulle gerne skrive false første gang, og true når man sender formen
-mundi- Jo, for hvis jeg går ind i forum igen kan jeg godt komme ind i indlæg... så jeg er logget ind... den redirecter bare forkert...
mini : -3 er for langt ... -2 = lige over indlæg ... -1 burde være indlæg, men det er login... ? Den tager ikke vistraad.asp som en side den har været inde på ?
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 = "Du blev ikke godkendt af systemet" else Session("login")=1 response.Redirect(request.ServerVariables("HTTP_REFERER"))
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 = "Du blev ikke godkendt af systemet" else Session("login") = "1" response.Redirect(request.ServerVariables("HTTP_REFERER"))
<% if not session("login") = "1" Then response.redirect "login.asp?r="&server.urlencode(request.servervariables("script_name")&"?"&request.querystring)
<% Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
if(len(request.querystring("r"))>0) then session("r")=request.querystring("r") end if
If Request("mode") = "Check" then SET conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") ' Gemmer formfelterne i Variabler strUsername = unQuote(request("username")) strPassword = unQuote(request("password"))
sql = "SELECT * FROM user where (username = '" & strUsername & "') and (password ='" & strPassword & "')" Set rs = conn.Execute(Sql)
if rs.eof then Session("login") = "" error = "Du blev ikke godkendt af systemet" else Session("login") = ez("admin") Conn.Close if(len(session("r"))=0) then 'forum default response.Redirect("forum.asp") else r = session("r") session("r")="" response.Redirect(r) end if end if end if %>
WuHu !!... så virkede det... jeg takker mange gange...
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.