Avatar billede kovalt Nybegynder
24. juni 2003 - 14:32 Der er 13 kommentarer og
1 løsning

Fuctions og return

Hej

Jeg har denne funktion som ligger i filen validateUP.asp:

Function validateUP(newUsername, newPassword, newPasswordConfirmed, numberOfMinCharacter)

Dim strNewUsername
Dim strNewPassword
Dim strConfirmNewPassword
Dim intNumberOfMinCharacter
Dim intIsThere
Dim intErrorNumber

strNewUsername = Trim(Replace(newUsername,"'",""))
strNewPassword = Trim(Replace(newPassword,"'",""))
strNewPasswordConfirmed = Trim(Replace(newPasswordConfirmed,"'",""))
intNumerIfMinCharacter = numberOfMinCharacter
intIsThere = 0
intErrorNumber = 0

strSQL = "SELECT COUNT(brugernavn) AS isthere FROM spillere WHERE brugernavn = '"& strNewUsername &"'"
set rs = conn.execute(strSQL)
       
if rs("isthere") > 0 then
    intIsThere = 1
end if

rs.close
set rs = Nothing

       
if strNewUsername = "" OR strNewPassword = "" OR strNewPasswordConfirmed = "" then
    intErrorNumber = 1
elseif intIsThere > 0 then
    intErrorNumber = 2
elseif strNewPassword <> strNewPasswordConfirmed then
    intErrorNumber = 3
elseif Len(strNewUsername) < 4 then
    intErrorNumber = 4
elseif Len(strNewPassword) < 4 then
    intErrorNumber = 5
else
    intErrorNumber = 0
end if

return intErrorNumber   

End Function

som jeg kalder således:

<!--#incluse file="login/validateUP.asp"-->

*<% intErrorNumber  = validateUP(request.form("newusername"), request.form("newPassword"), request.form("newPasswordConfirmed"), 4)

if CInt(intErrorNumber) = 0 then
  response.write "der var ingen fejl"
else
  response.write "Der opstod en fejl - nr. " & intErrorNumber

end if

Hvad er der galt....

jeg får en type mismatch på linien markeret med * - kan en funktion ikke returnere et tal eller er den begrænset til booleans? Endvidere får jeg en fejl omkring at jeg ikke må anvende parateser når jeg kalder en sub - hvad er det for noget... har det noget at sige at jeg includer filen?

/kovalt
Avatar billede jpvj Nybegynder
24. juni 2003 - 14:34 #1
Hvordan ser filen validateUP.asp ud?
Skriv lige den præcise fejlbesked.

Funktionen returnerer tilsyneladende ikke en int...
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:35 #2
dette er alt der ligger i validateUP.asp:

<% Function validateUP(newUsername, newPassword, newPasswordConfirmed, numberOfMinCharacter)

Dim strNewUsername
Dim strNewPassword
Dim strConfirmNewPassword
Dim intNumberOfMinCharacter
Dim intIsThere
Dim intErrorNumber

strNewUsername = Trim(Replace(newUsername,"'",""))
strNewPassword = Trim(Replace(newPassword,"'",""))
strNewPasswordConfirmed = Trim(Replace(newPasswordConfirmed,"'",""))
intNumerIfMinCharacter = numberOfMinCharacter
intIsThere = 0
intErrorNumber = 0

strSQL = "SELECT COUNT(brugernavn) AS isthere FROM spillere WHERE brugernavn = '"& strNewUsername &"'"
set rs = conn.execute(strSQL)
       
if rs("isthere") > 0 then
    intIsThere = 1
end if

rs.close
set rs = Nothing

       
if strNewUsername = "" OR strNewPassword = "" OR strNewPasswordConfirmed = "" then
    intErrorNumber = 1
elseif intIsThere > 0 then
    intErrorNumber = 2
elseif strNewPassword <> strNewPasswordConfirmed then
    intErrorNumber = 3
elseif Len(strNewUsername) < 4 then
    intErrorNumber = 4
elseif Len(strNewPassword) < 4 then
    intErrorNumber = 5
else
    intErrorNumber = 0
end if

return intErrorNumber   

End Function %>
Avatar billede medions Nybegynder
24. juni 2003 - 14:36 #3
Skift
return intErrorNumber 
ud med
validateUP = intErrorNumber

//>Rune
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:38 #4
fejlen jeg får er:

Microsoft VBScript runtime error '800a000d'

Type mismatch

changeUP.asp, line 20

og changeUP.asp ser således ud:

<!--#incluse file="login/validateUP.asp"-->

*<% intErrorNumber  = validateUP(request.form("newusername"), request.form("newPassword"), request.form("newPasswordConfirmed"), 4)

if CInt(intErrorNumber) = 0 then
  response.write "der var ingen fejl"
else
  response.write "Der opstod en fejl - nr. " & intErrorNumber
end if %>
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:40 #5
samme fejl Rune
Avatar billede medions Nybegynder
24. juni 2003 - 14:40 #6
Hvad for en linje er linje 20?

//>Rune
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:42 #7
den der er markeret med * 14:38:20 - som du ser bliver filen med funktionen inkluderet lige ovenover
Avatar billede medions Nybegynder
24. juni 2003 - 14:44 #8
intErrorNumber  = validateUP request.form("newusername"), request.form("newPassword"), request.form("newPasswordConfirmed"), 4

Prøv sådan i stedet for (altså fjern paranteserne)
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:44 #9
burde det med return ikke virke..... eller det måske ikke syntaxen i ASP
Avatar billede medions Nybegynder
24. juni 2003 - 14:44 #10
Agh, det er fordi du har stavet include forkert!

<!--#incluse file="login/validateUP.asp"-->

skal være

<!-- #include file="login/validateUP.asp" -->

//>Rune
Avatar billede medions Nybegynder
24. juni 2003 - 14:49 #11
Det er syntaxen for en JavaScript funktion, det er ikke VBScript syntax!

Sådan laver man en funktion i VB:

Function FunktionsNavn (strVariabel)
    FunktionsNavn = "http://" & strVariabel
End Function

strURL = FunktionsNavn("www.medions.dk")
Response.Write(strURL)

//>Rune
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:49 #12
hold kæft hvor træls en fejl.... typisk :-)

Mht return - bruger man ikke i det under funktioner i ASP
Avatar billede kovalt Nybegynder
24. juni 2003 - 14:49 #13
OK - mange tak for hjælpen
Avatar billede medions Nybegynder
24. juni 2003 - 14:50 #14
;o)
Thx 4 Poinz

//>Rune
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester