webForumDet fria alternativet

Fruktansvärt! Hur förbättrar jag detta?

ASP

1 svar · 285 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Ni får ursäkta mig och följande kod. Detta är från 2003 när jag för första gången skapade en registreringssida för ett litet projekt jag gjorde. Och detta fungerade riktigt bra, men nu när jag behöver koden igen så känns den gammal och äcklig, kan ni hjälpa mig att skippa barlast som inte behövs och förminska och göra den allmänt duglig.

'########################################################################################################################
'############## -- Teckenkontroll och filtrering -- #####################################################################

	Function HasBadChars(strTest)
	Dim objRX

	HasBadChars = False

	Set objRX = New RegExp
	objRX.IgnoreCase = True
	objRX.Global = True
	objRX.Pattern = "[!\x22#¤%&/\(\)=\?´`\|\½\\<>\+\}\{\$£,;:'\*¨\^~\[\]]"

	If objRX.Test(strTest) Then HasBadChars = True
	End Function

	If HasBadChars(Trim(FixInject(Request.Form("username")))) or HasBadChars(Trim(FixInject(Request.Form("epost")))) or HasBadChars(Trim(FixInject(Request.Form("fname")))) or HasBadChars(Trim(FixInject(Request.Form("lname")))) Then
	Session("sError1") = "<font color=""red"">* Du har angett ogiltiga tecken! *</font>"
	response.redirect "register.asp?vad=fel"	
	End If

'########################################################################################################################
'############## -- Hämta in fälten från registreringssidan & skapa variabler för mailet -- ##############################

	user = Trim(FixInject(Request.Form("username")))
	fname = Trim(FixInject(Request.Form("fname")))
	lname = Trim(FixInject(Request.Form("lname")))
	epost = Trim(FixInject(Request.Form("epost")))
	SenastLogin = "nej" 				'# -- Sätt in text för att se om användaren har loggat in --

	fran = ""
	arende = "Medialabs Plus Registrering!"
	ip = Request.ServerVariables("REMOTE_ADDR")

	'fromID = "Webbredaktionen"
	'fromMess = "Vi på webbredaktionen hoppas att du kommer att få nytta av Medialabs Plus och allt vad den har att erbjuda."
	'topicMess = "Välkommen till Medialabs Plus!"

'########################################################################################################################
'############## -- Kolla så att det är mer än 4 och mindre än 15 tecken i användarnamnet -- #############################

	if len(user)<4 or len(user)>15 then
	Session("sError1") = "<font color=""red"">* Endast 4 till 15 tecken i användarnamnet! *</font>"
	response.redirect "register.asp?vad=fel"	
	end if

	if len(fname)<2 or len(fname)>15 then
	Session("sError1") = "<font color=""red"">* Endast 2 till 15 tecken i Förnamnet! *</font>"
	response.redirect "register.asp?vad=fel"	
	end if

	if len(lname)<2 or len(lname)>15 then
	Session("sError1") = "<font color=""red"">* Endast 4 till 15 tecken i Efternamnet! *</font>"
	response.redirect "register.asp?vad=fel"	
	end if

	if len(epost)<5 or len(epost)>30 then
	Session("sError1") = "<font color=""red"">* Endast 5 till 30 tecken i Epostadressen! *</font>"
	response.redirect "register.asp?vad=fel"	
	end if

'########################################################################################################################
'############## -- Kolla så att fälten inte är tomma -- #################################################################

	if user="" or epost="" or fname="" or lname="" then
	Session("sError1") = "<font color=""red"">* Alla fält måste vara ifyllda! *</font>"
	response.redirect "register.asp?vad=fel"	
	end if

'########################################################################################################################
'############## -- Funktion för att generera ett lösenord till användaren -- ############################################
	
	Function Createpass(arg)
	Dim vPasswd, i
	const vPasschars = "qwertyuipkjhgfdsazxcvbnm23456789QWERTYUPLKJHGFDSAZXCVBNM"
	Randomize
	For i =  1 To arg
	vPasswd = vPasswd & mid ( vPasschars, Int(rnd*Len(vPasschars))+1, 1 )
	Next
	Createpass = vPasswd
	End Function
	
'########################################################################################################################
'############## -- Generera ett 10-siffrigt lösenord -- #################################################################

	losenord = Createpass(10)

'########################################################################################################################
'############## -- Filtrerar bort ogiltiga tecken -- ####################################################################

	Function FixInject(strSource)
	FixInject = Replace(strSource, "'", "''")
	End Function

'########################################################################################################################
Medlem sedan juni 20019 519 inlägg
#2

Tycker din kod ser helt okej... det du skulle kunna göra istället för alla response.redirect göra en kontroll:

if Session("sError1") <> "" then
  response.redirect "register.asp?vad=fel"
end if
252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)