16. januar 2010 - 22:48Der er
11 kommentarer og 1 løsning
Formknap udskiftet med billede / ASP / ACCES-DB
Jeg har lavet et login-system der virker helt efter hensigten. Men nu har jeg lavet min "Login"-knap om til et billede, da det passer bedre med mit design. Når jeg klikker på billede(den nye login-knap) virker den ikke efter hensigten mere, altså.. den sender mig ikke videre til næste side men opdatere istedet default.asp, her følger lidt kode: ---------------------------------------------------
<% ' 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("database.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID FROM bruger"&_ " WHERE (profil = '" & strUID & "')"&_ " AND (adgangskode = '" & 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 = "Forkert brugernavn eller adgangskode" 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("dinside.asp?UserID=") & intUID
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=white><font=verdana><font size=1>" & strErr & "</font></p>" End If End If %> </head> <form method="POST" action="default.asp"> <label> <input name="Brugernavn" type="text" value="E-mail adresse"> </label> <label> <input name="Adgangskode" type="password" value="Adgangskode"> </label> <input type="image" src="images/knap_07.gif" value="Login" name="Action"> </form> </html> ---------------------------------
<% ' 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("database.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID FROM bruger"&_ " WHERE (profil = '" & strUID & "')"&_ " AND (adgangskode = '" & 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 = "Forkert brugernavn eller adgangskode" 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("dinside.asp?UserID=") & intUID
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=white><font=verdana><font size=1>" & strErr & "</font></p>" End If End If %> <html> <head> <title>knap - Community for unge</title>
Det fjernede ihvertfald fejlen med, at der skulle stå et ';'-tegn. Men den sender mig stadig ikke videre til næste side. den almindelige formknap jeg har lavet i bunden af siden fungerer udmærket. Det sku lidt underligt. Mon det skal defineres i toppen at det er et billede istedet for en knap?
Så virker hverken billede-knappen eller den almindelige formknap.
Men hvis man requester querystring, så kræver det vel der er en forudgående streng med navnet login.. og det er der jo ikke da default.asp er selve start siden og der ikke er nogen forudgående handling der har lavet en querystring med værdien loogin
Har du rettet action til det jeg skrev og reloaded siden.
Jeg får fejlen:
Microsoft OLE DB Provider for ODBC Drivers fejl '80004005'
[Microsoft][ODBC Microsoft Access-driver] Filen "(ukendt)" kan ikke findes.
/default.asp, linje 14
når jeg klikker på image knappen og login knappen, hvilket er klart, da jeg ikke har databasen og stien til den sat op på min computer, men det betyder at ASP koden kaldes og mode=login
Arh :) Nu virker det sku! .. dit svar #7 virker helt efter hensigten. Jeg havde bare kommet til at skrive 'Login' istedet for 'login' - altså med et stort L.
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.