28. september 2002 - 12:01Der er
26 kommentarer og 1 løsning
variable der henter info fra en form (password) set paa mange HP
hey
mit spørgsmaal er rimlig nemt gaar jeg ud fra :) sorry men kan ikke programmere i asp selv.
jeg har et password script jeg skal bruge paa en side, men vil gerne ha det til at saa hvem der er logget ind ex.: login: ---> navn: test bruger: test saa det jeg mangler er en variable der gemmer oplysninger fra en tabel og en der henter den naar jeg loader en ny side (jeg bruger frameset) en med login-info og logout og den anden med secure info jeg har det her: <% = Username %> (men vil ikke loade det naar det er i et frameset (er det noget jeg kan gøre? ell. skal jeg lave det paa en side? har du et password script der kan gøre det eller bare koden som jeg kan putte ind i det password script jeg ellerede har saa ville jeg blive meget glad paa forhand tak
Gemmer du nogle værdier inde i login scriptet når brugeren er logget ind?.. det bliver du nødt til for at kunne se og finde oplysninger om den bruger.. evt sessions eller cookies !
If Not(Session("Checked")) then 'Henter login info fra cookie på user computer. Username = Request.Cookies("LoginInfo")("Username") Password = Request.Cookies("LoginInfo")("Password")
'Slår op i databasen efter brugernavnet fra cookien SQL = "SELECT * FROM TblPasswords WHERE Username='" & Username & "'" Set dbRs = dbCon.Execute(SQL)
if dbRs.BOF AND dbRs.EOF then 'Brugernavnet blev ikke fundet i databasen ErrorMessage = "<i>You've typed a wrong username or you have not logged in before from this computer.</i>" Rejected = True elseif not dbRs("Password") = password then 'Brugernavnet var der, men password forkert ErrorMessage = "<i>You've typed a wrong password.</i>" Rejected = True else 'Alt var fint, gemmer informationen i variabler, og viser almindelig side RealName = dbRs("RealName") Username = dbRs("Username") Password = dbRs("Password") Rejected = False Session("Checked") = True end if
bryder mig entligt ikke om dette script, er ok, men gir mig formange problemer :) saa hvis du/i har et andet - kender et sted der har (ikke asp.dk activeserverpages.dk eller netcoder.dk) har tjekket og de har ikke den funktion (kan maaske imp.) naar info bliver gemt i en variable er den saa gemt indtil man lukker browseren eller logger ud? hvis saa, mangler jeg kun et script der kan vise det i en celle som <% = Username %> ell. <%=session("username"%> (kunne jeg ikke faa til at virke (bruges den ikke i et text felt? ell. kan den ogsaa bruges i en celle?
saa er jeg her igen :) jeg har et andet script nemt a gaa til (jeg kan faa UserID frem paa en anden side, men ikke andet. jeg vil gerne ha Username frem istedt for:
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("login_2000.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID FROM Users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID Response.Redirect("beskyttet.asp") End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head><body> <form method="POST" action="login.asp"> <p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%> <table border="0"> <tr> <td width="50%">Brugernavn:</td> <td width="50%"><input type="text" name="Brugernavn" size="20"> (test)</td> </tr> <tr> <td width="50%">Adgangskode:</td> <td width="50%"><input type="password" name="Adgangskode" size="20"> (test)</td> </tr> </table> <p><input type="submit" value="Login" name="Action"></p> </form> </body></html>
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function ' Gemmer formfelterne i Variabler strUsername = unQuote(request.form("username")) strPassword = unQuote(request.form("password"))
Username = strUsername Sql = "Select Count(*) as Found from TblPasswords where (Username = '" & strUsername & "') and (Password ='" & strPassword & "')" Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" fejl = "<font color='#FF0000'>Du blev ikke godkendt af systemet</font>" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(VPath & "SecurityDB.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM TblPasswords where (Username = '" & Request("username") & "') and (Password ='" & Request("password") & "')" Set ez = myConn.Execute(strSQL) Session("Username") = strUsername Session("login") = "True" End If Response.Redirect "Derhvorduvilhen.asp" EZ.Close RS.Close rsupdate.Close Conn.Close end if %>
kan ikke lige hitte ud a hvad og hvor jeg skal putte en anden variable ind saa jeg kan faa Username frem nogen der har en ide og har lyst til at hjælpe?
jeg kan ikke faa det til at virke (mange tak for hjælpen thou)
det andet script jeg smed ind kan du sige mig hvor jeg skal skrive den variable for Username (U er med stort i access tablen)
(det script du har posted virker, men <%=session("username")%> virker ikke ked a hvis du bruger al for meget tid paa det (med mindre du ikke har noget imod det
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("login_2000.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID, Username FROM Users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") Session("Username")= rs("Username") Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID Response.Redirect("beskyttet.asp") End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head><body> <form method="POST" action="login.asp"> <p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%> <table border="0"> <tr> <td width="50%">Brugernavn:</td> <td width="50%"><input type="text" name="Brugernavn" size="20"> (test)</td> </tr> <tr> <td width="50%">Adgangskode:</td> <td width="50%"><input type="password" name="Adgangskode" size="20"> (test)</td> </tr> </table> <p><input type="submit" value="Login" name="Action"></p> </form> </body></html>
Nu skulle du meget gerne kunne skrive Username Ud et andet sted på siden (uden at åbne en ny browser op) med enten Response.Write Session("Username") eller i <%=Session("Username")%>
UPS.... var lige lidt for huirtigt der.. Brug denne udgave
<% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("login_2000.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID, Username FROM Users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") Username = rs("Username") Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID Session("Username")= Username
Response.Redirect("beskyttet.asp") End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head><body> <form method="POST" action="login.asp"> <p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%> <table border="0"> <tr> <td width="50%">Brugernavn:</td> <td width="50%"><input type="text" name="Brugernavn" size="20"> (test)</td> </tr> <tr> <td width="50%">Adgangskode:</td> <td width="50%"><input type="password" name="Adgangskode" size="20"> (test)</td> </tr> </table> <p><input type="submit" value="Login" name="Action"></p> </form> </body></html>
wuuuhuuuuuuuuu det virker 1000 tak for hjælpen (kan du ikke lige lave et svar saa jeg kan gi dig point :) ord kan ikke gøre det (jeg har siddet i 3 dage for at faa det til at virke) :)
jeg har lige sat nogle nye ting ind (navn, brugernavn og password) og det virker (meget nemt naar man ved hvordan) lige en sidste ting: som databasen er nu saa er den ikke sikker. saa hvis jeg vil ha den ud i roden skal jeg sa bare skrive: myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/secure/login_2000.mdb") hvor secure er en asp/script only mappe?
har smidt et andet spørgsmaal ind her: nulstil en sessions i et logout asp script
hvis du har lyst og tid til at hjaelpe lidt igen
(det er maaske meget simple spørgsmaal, men jeg er meget ny til asp og bruger det meget lidt saa simple ting bliver store ting for mig) saa bær over med mig
Jeg må nok lige melde pas på det sidste spørgsmål der :).. Men ja det er bare at flytte databasen til den mappe på serveren hvor den skal ligge.. som regel hedder den DB og kan findes helt ude i roden..
men jeg må indrømme at det med secure det ved jeg ikke lige noget om desværre :(
k tak behøver ikke hedde secure (det er bare en folder jeg beder webudbyderen om at låse for alt andet end scripts
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.