webForumDet fria alternativet

Försöker med felhantering men får inte till det

ASP

5 svar · 802 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Om fälten är tomma så ska felmeddelande visas, om inte så ska posten sparas men jag får bara

Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: ""]'

/skapaTabell.asp, line 27

Rad 27 är IF NOT

med koden

varName= Request.Form ("txtName")
varEmail= Request.Form ("txtEmail")
varMessage= Request.Form ("txtMessage")
varTimeDate = Now()
varIP = Request.ServerVariables("remote_host")

IF NOT varName or varEmail <> "" Then
Response.Write "<font style=""color:red; font-wight:bold;"">Skriv in namn och e-post</font>"
Else

	SET objConn = connect()
	guestbook= "INSERT INTO guestbook"
	guestbook= guestbook & "(name,email,timedate,message,IP) "
	guestbook= guestbook & "VALUES('"& varName &"','"& varEmail &"','"& varTimeDate &"','"& varMessage &"','"& varIP &"')"

	'Response.Write guestbook
	'Response.End
	objConn.Execute guestbook
	Response.write "Du har postat <br>"
	Response.Write "Namn: "&varName
	Response.Write "<br>Epost "&varEmail
	Response.Write "<br>Meddelande: "&varMessage
	Response.Write "<br>När: "&varTimeDate
	Response.Write " från IP "&varIP

END IF
END IF
Medlem sedan juni 20019 519 inlägg
#2

Har inget med SQL att göra varName är inte ett boolean värde,

If varName = "" or varEmail = "" Then

Är det det du är ute efter?

(flyttar tråden till ASP)

Medlem sedan feb. 20032 027 inlägg
#3

voigtann1 skrev:

Har inget med SQL att göra varName är inte ett boolean värde,

If varName = "" or varEmail = "" Then

Är det det du är ute efter?

(flyttar tråden till ASP)

Funkade bättre men jag tänkte utöka till att göra den idiotsäker men nu får jag bara fram den första ifsatsen om att inte lämna fälten tomma oavsett vilket man fyller i

If varName="" or varEmail="" or varMessage="" Then
	Response.Write("Du kan inte lämna fälten tomma")
ElseIf varEmail = "" Then
	Response.Write("Skriv in din mailadress")
ElseIf varMessage = "" Then
	Response.Write("Skriv in ett meddelande")
ElseIf varName = "" Then
	Response.Write("Skriv in ditt namn")
Medlem sedan mars 2004485 inlägg
#4

Den kör ju aldrig ElseIf satserna eftersom om nån av dem är sanna så har den kört den översta if satsen redan.

If varName="" or varEmail="" or varMessage="" Then
	Response.Write("Du kan inte lämna fälten tomma")
If varEmail = "" Then
	Response.Write("Skriv in din mailadress")
If varMessage = "" Then
	Response.Write("Skriv in ett meddelande")
If varName = "" Then
	Response.Write("Skriv in ditt namn")
Medlem sedan feb. 20032 027 inlägg
#5

aron skrev:

Den kör ju aldrig ElseIf satserna eftersom om nån av dem är sanna så har den kört den översta if satsen redan.

If varName="" or varEmail="" or varMessage="" Then
	Response.Write("Du kan inte lämna fälten tomma")
If varEmail = "" Then
	Response.Write("Skriv in din mailadress")
If varMessage = "" Then
	Response.Write("Skriv in ett meddelande")
If varName = "" Then
	Response.Write("Skriv in ditt namn")

tänkte bara få den helt failsafe :-)

Medlem sedan dec. 2004736 inlägg
#6

WebbisNet skrev:

tänkte bara få den helt failsafe :-)

Den är helt "fail safe" även om du bara kör den översta if-satsen. Som Aron skrev, du kollar ju i den översta om någon (vilken som) är tom. Samma sak som du gör i de tre andra.

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)