Altså en side hvor du som administrator kan se hvem der er logget ind? Det kræver jo at du i en database har et felt "loggetin" som du sætter til sand når de logger ind, og falsk når de logger ud Så kan du bare hive ud af den database
Du skal så være opmærksom på at man ikke nødvendigvis logger ud. Nogen lukker måske bare vinduet. I din global.asa fil kan du under Session_OnEnd lave en funktion som logger personen ud når sessionen dør/timer ud. Dvs så bliver vedkommende normalt logget ud efter 20min Dit database opslag på hvem som er online vil så være med forbehold for de 20min hvor nogen vil figurere som online selvom de har lukket deres browser
Ok jamen så er det snildt nok For når vedkommende logger ind så har du jo et database tjek sikkert ? som sikrer at vedkommende må logge ind ikke? :o) Idet du logger ind så sætter du bare en session, altså ala --- login siden: navn = request.form("navn") password = request.form("password") //forbindelse og tjek på databasen Session("navn") = navn --- På alle andre sider kan du så referere til den session fx --- response.write "Hej "&session("navn")&" du har ikke købt noget :o("
Jamen kan man godt have 2 session igang på een gang?? Jeg har lavet min login og den virker fint, vil så gerne have det navn med ud.
Her er min Login.asp
<% If request.form("logud") = "logud" then session.abandon end if SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/FFdatabase.mdb")
If Request("mode") = "Check" then
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
Jeg ved ikke helt hvor du vil have det. Du har til dels ret i at man kun har en session pr person på sin side. Dvs sessionen får et unikt id som gør at din server kan adskille de forskellige personer fra hinanden. Men det er i dette id at du gemmer de forskellige oplysninger. Jeg kender ikke grænsen men du kan have mange mange forskellige objekter i din session. Så du kan fx gøre sådan her ----- <% If request.form("logud") = "logud" then session.abandon end if SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/FFdatabase.mdb")
If Request("mode") = "Check" then
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
Sql = "Select Count(*) as Found from KundeTabel where (LoginID = '" & strUsername & "') and (PasswordID ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "FEJL i indtastningen!" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/FFdatabase.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM KundeTabel where (LoginID = '" & Request("LoginID") & "') and (PasswordID ='" & Request("PasswordID") & "')" Set ez = myConn.Execute(strSQL) Session("login") = "yes mate" Session("navn") = strUsername Response.Redirect("kundenavn.asp?IDkunde="& ez("IDkunde")) 'response.write "VELKOMMEN "&session("navn") EZ.Close RS.Close myConn.Close end if end if %></td> </tr> <tr> <td class="norm"> <form method="POST" action="login.asp"> <input type="hidden" name="mode" VALUE="Check"> <br> Login<br> <input class="form" type='text' name='LoginID' value="<%=strbrugernavn%>" size="19"><br> Password<br> <input class="form" type="password" value="<%=strpassword%>" name="PasswordID" size="19"><br><br> <input id="submit" type="submit" value="Login" name="submit"> <font class="rubrik"><%=error%></font> </form> ------ Bemærk dog at det ikke lige virker der hvor det står fordi du laver en redirect inden. Men på den side du redirecter til kan du også hente din Session("navn").. den er jo global for den enkelte bruger
En helt anden ting er at det er fint nok at du laver en unquote funktion men du bør tilføje en replace(tekst,','') så du undgår sql injecktion. Endvidere bør du i begge dine sql sætninger benytte strUsername og strPassword. For ellers kan du jo risikere at den ene sql sætning bliver misbrugt :o)
busschou Først tak for at du gider hjælpe... Sandheden er at det der login er et jeg har hentet på nettet, og jeg ved ikke helt hvordan det virker. Så jeg ved eks. ikke hvordan jeg henter den session på den side jeg redirecter til, men jeg ved at det er lige precis det jeg gerne vil. Og de sidste tre linjer du har skrevet til mig er "russisk", jeg ved ikke hvad en unquote funktion er, jeg jeg forstår hellerikke hvordan sql sætningen kan blive misbrugt.
Når personen logger ind så laver du jo allerede følgende linje: strSQL = "SELECT * FROM KundeTabel where (LoginID = '" & Request("LoginID") & "') and (PasswordID ='" & Request("PasswordID") & "')" Hvis personens rigtige navn findes i din tabel så kan du jo få den sådan her Session("navn") = ez("NAVNET PÅ RÆKKEN I TABELLEN HVOR NAVNET STÅR") hvis du forstår? , altså jeg ved jo ikke hvad du kalder feltet i databasen men hvis det hedder username fx.. så sådan her Session("navn") = ez("username")
Alle de steder på alle de sider du ønsker at skrive brugerens navn ud skal du i stedet for navnet blot skrive Session("navn") Altså i stedet for at skrive response.write("hej brian velkommen") så skriver du response.write("hej "&Session("navn")&" velkommen")
Jeg håber du forstår, ellers må du endelig spørge mere Det med sql injection er et stort og vigtigt emne hvis du tror der er risiko for at nogen vil ødelægge og misbruge din database mm. Så det afhænger af hvor meget du ønsker gøre ud af din sikkerhed. Jeg vil foreslå dig først ordne det andet og så tager vi sikkerheden bagefter - ikke at det ikke er vigtig. Men hvis du ikke er helt ferm til asp endnu.. så er det måske en stor mundfuld at tage det hele på en gang :o)
Jeg har fået det til at virke .... og er meget glad.... Det der med sikkerhed må vente, da dette "kun" er en demoversion. Men måske om ikke så lang tid skal det ud i den virkelig verden, og så vil jeg meget gerne have sikkerheden i orden.
Jeg har stadig mange spørgsmål... men er løbet tør for points, og har ikke tid til selv at arbejde points sammen, da jeg skal aflevere projekt demoversion på mandag... Hvad gør man så???
hehe ja hvad gør man så... så stiller man spørgsmål til 0 point og håber venlige folk vil hjælpe :o)
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.