22. januar 2007 - 12:59Der er
8 kommentarer og 1 løsning
Tjek for ugyldige tegn i brugeroprettelse
Hejsa Ng.
Som det er nu tjekker jeg kun, når en bruger opretter sig, efter om bruger har indtastet et brugernavn på min. 4 karakter.
Smider lige koden, håber det er nok med dette: If Len(strUser) < 4 THEN strErr = strErr & "0," If Len(strPass) < 4 THEN strErr = strErr & "2," If IsEmpty(strMail) THEN strErr = strErr & "4," If CheckEMail(strMail) = False THEN strErr = strErr & "5," If CStr(strPass) <> CStr(strCPass) THEN strErr = strErr & "3,"
Nu har jeg jo så opdaget, desværre for sent, at jeg heller ikke ønsker at brugeren må oprette brugernavne med mellemrum og underlige tegn.
Nogen der kan hjælpe mig med dette?
Min If CheckEmail ligger i en include fil der hedder textfunctions.asp og koden deri ser sådan ud:
Function CheckEmail(strmail) Dim regXp, retVal Set RegXp = New RegExp RegXp.Pattern = "(^([a-zA-Z0-9.-_]+[a-zA-Z0-9]|\a-zA-Z0-9])@{1}[a-zA-Z0-9.]+\.[a-zA-Z]{2,4}$)" RegXp.IgnoreCase = False retVal = RegXp.Test(strmail)
If retVal = True THEN CheckEmail = True Else CheckEmail = False End If
Set RegXp = Nothing End Function
Det kunne jo være en udvidelse af brugernavn-tjek kunne laves i samme include fil.
Mystisk jeg har sat det hele ind, men det giver fejl uanset hvad jeg gør i bruger-oprettelse.
<% Function CheckUser(strUser)
validChar = "abcdefghijlkmnopqrstuz01234567890"
For i = 1 to len(strUser)
If inStr(1, validChar, Mid(strUser,i,1)) = 0 then CheckUser = False Exit Function End If
Next
CheckUser = true
End Function
strAction = Request.QueryString("action")
Select Case strAction Case "newuser" ' Creating a new user strUser = Trim(Request.Form("user")) strPass = Trim(Request.Form("pass")) strCPass = Trim(Request.Form("CPass")) strMail = Trim(Request.Form("mail")) strACode = CreateCode(20)
If CheckUser(strUser) = False THEN strErr = strErr & "0," If Len(strPass) < 4 THEN strErr = strErr & "2," If IsEmpty(strMail) THEN strErr = strErr & "4," If CheckEMail(strMail) = False THEN strErr = strErr & "5," If CStr(strPass) <> CStr(strCPass) THEN strErr = strErr & "3,"
Oki, et eller andet sted ser jeg forkert. Prøver at oprette " ¤% g ¤#" - dette giver fejl. Prøver at oprette "PlatoPlato" dette giver også fejl. Poster lige følgende: textfunctions.asp (indeholder funktionerne) storedata.asp (gemmer profilen) opret.asp (oprettelses formen)
----------textfunctions: Function CheckUser(strUser) validChar = "abcdefghijlkmnopqrstuz01234567890" For i = 1 to len(strUser) If inStr(1, validChar, Mid(strUser,i,1)) = 0 then CheckUser = False Exit Function End If Next CheckUser = True End Function
----------storedata.asp: strAction = Request.QueryString("action") Select Case strAction Case "newuser" ' Creating a new user strUser = Trim(Request.Form("user")) strPass = Trim(Request.Form("pass")) strCPass = Trim(Request.Form("CPass")) strMail = Trim(Request.Form("mail")) antalbio = Trim(Request.Form("antalbio")) antaldvd = Trim(Request.Form("antaldvd")) anyheder = Trim(Request.Form("anyheder")) strACode = CreateCode(20) If CheckUser(strUser) = False THEN strErr = strErr & "0," If Len(strPass) < 4 THEN strErr = strErr & "2," If IsEmpty(strMail) THEN strErr = strErr & "4," If CheckEMail(strMail) = False THEN strErr = strErr & "5," If CStr(strPass) <> CStr(strCPass) THEN strErr = strErr & "3,"
Eller erstatte denne linie: If inStr(1, validChar, Mid(strUser,i,1)) = 0 then med følgende: If inStr(1, validChar, Mid(LCase(strUser),i,1)) = 0 then - det burde også virke :-)
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.