Jag har en inloggningssida, som man fyller i ett användarid och detta är det unika indexet i databasen som består av en räknare. så när man fyller i med bokstäver i användarid fältet och ska logga in så får man fäljande fel och det är ju inte så snyggt man vill ju ha att det kommer ett mer användarvänligt felmeddelande
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/porsche/login/login_ok.asp, line 30
min SQL
SQL = "SELECT Rs_Forsalj_ID, Rs_Losen FROM forsaljare WHERE Rs_Forsalj_ID = " & strAnvID & " AND Rs_Losen = '" & strLosen & "' "
<%
If Request.Form("FormAnvID") = "" AND Request.Form("FormLosen") = "" Then
Response.Redirect "login.asp?fel=both"
ElseIF Request.Form("FormAnvID") = "" Then
Response.Redirect "login.asp?fel=AnvID"
ElseIF Request.Form("FormLosen") = "" Then
Response.Redirect "login.asp?fel=Losen"
End If
Dim strAnvID, strLosen, ObjConn, SQL, rs
strAnvID = Request.Form("FormAnvID")
strLosen = Request.Form("FormLosen")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\crystal\databas\annonser.mdb"
SQL = "SELECT Rs_Forsalj_ID, Rs_Losen FROM forsaljare WHERE Rs_Forsalj_ID = " & strAnvID & " AND Rs_Losen = '" & strLosen & "' "
Response.Write " " & SQL & ""
set rs = objConn.Execute(SQL)
If RS.EOF Then
'felaktigt inloggning
Response.Redirect "login.asp?fel=inlogning"
Else
'allt är i sin ordning
Response.Write "Välkommen, Du är nu inloggad"
id = strAnvID
dim forsalj_id, id
session("forsalj_id") = id
End If
%>
<% if session("forsalj_id") then %>
<script language = "JavaScript">
parent.navframe.location.href="../nav/minsid.asp";
parent.logoframe.location.href="../topp.asp";
</script>
<% End If %>
och detta felmeddelande får jag
SELECT Rs_Forsalj_ID, Rs_Losen FROM forsaljare WHERE Rs_Forsalj_ID = 123jhkjhk AND Rs_Losen = 'klhjgf'
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Rs_Forsalj_ID = 123jhkjhk AND Rs_Losen = 'klhjgf''.
/porsche/login/login_ok.asp, line 34
Räknare är av typen tal och kan således inte ta text.
Du måste ta användar id'et och validera mot rätt fält, således kan inte intAnvID innehålla text om du ska validera mot räknar fältet.
jo jag vet att man inte kan ha text när man validerar men jag vill att det ska bli ett "snyggare" felmeddelande när man "råkar" skriva in text i användarid då förstår Ni nu?
Bara att checka strängen som kommer innan man öppnar connection/skapar recordsetet och exekverar sql-frågan:
If IsNumeric(Trim(strFirstName)) Then
'## -- är ju ett nummer och du kan köra valideringen --
Else
'## -- felmess --
Response.Write "HALLÅ!!! ingen text här tack!"
End If
cya,
PatrikB
259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a