if not autoriseret.EOF then er det dette 'not' du taler om? autoriseret.EOF er sand, når du når til det sidste af record-settet og ellers falsk. not aut... er sand, så længe. der er noget at hente.
ups: rettelse:' Dit not fungerer på den måde, at når der ER noget at hente i dit recordset autoriseret(så er eof falsk), så bliver der redirectet til main.asp.
OK, så skal du gøre således: while not autoriseret.EOF if Session("login") = "loged_in" and Session("brugernavn") = rs("brugernavn") then Response.Redirect("main.asp") end if autoriseret.movenext wend
Jeg har her gået ud fra at session("brugernavn") er det brugeren har indtastet, og session("login") er lig "logged in" for brugere der skal have lov til at komme ind. Men hvor er adgangskoden henne?
Jeg mener faktisk slet ikke der skal ændres noget i selve asp-koden. Du henter fra databasen de poster, der svarer til brugernavn og adgangskode. Hvis der ikke er nogen brugere, der kan bruges, vil recordsettet være tomt, og autoriseret.eof er derfor sand. Så er not autoriseret.eof falsk og brugeren får derfor login-siden igen. Ellers redirectes til main.asp. Så hvad er dit problem egentlig? Nu har du jo fået rettet din form.
sql = "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'" set autoriseret = rs.execute(sql)
if not autoriseret.EOF then Session("login") = "loged_in" Session("brugernavn") = autoriseret.fields("brugernavn") Response.Redirect("main.asp") end if end if %>
Tak for hjælpen alle sammen men intet af det hjalp, men jeg fandt dog selv ud af det og resultatet blev som det følgende
<% if Request.Querystring("mode") = "logud" then Session("login") = "" Session.Abandon 'Det er nødvendig at lave redirect eller slettes session ikke helt Response.Redirect("login.asp") end if %> <% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
Set Conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/admin.mdb")
password = Replace(Request.Form("password"),"'","''") navn = Replace(Request.Form("navn"),"'","''")
SQL = "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'" Set rs = Conn.Execute(SQL) if NOT rs.EOF then Session("login") = "loged_in" Session("level") = rs("level") else Session("login") = "" end if rs.Close Set rs = nothing Conn.Close Set Conn = nothing if Session("login") = "loged_in" then 'BRUGER ER LOGGET IND SEND HAM VIDRE TIL EN BESKYTTET FIL
Så kan du lukke dette spg. ved enten at acceptere dit eget svar, eller dele points ud, hvis du synes det er berettiget...
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.