webForumDet fria alternativet

Validera formulär

ASP

12 svar · 617 visningar · startad av tobili

Medlem sedan apr. 200522 inlägg
Frågan#1

Ok, jag har sökt igenom forumet efter liknande trådar men jag har ändå inte riktigt fått grepp om hur jag ska validera mitt formulär.

Postar lite kod:

<% If Request.Form("send") = "yes" Then
	Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
	Mailer.qmessage=true
	Mailer.RemoteHost = "smtp.server.com"
	Mailer.FromName = request.form("kontakt") & " - " & request.form("firmanavn")
	Mailer.FromAddress = request.form("epost")
	Mailer.AddRecipient "namn", "namn@email.com"
	Mailer.Subject = "Katalogbestilling"
	Mailer.BodyText = "Firmanavn: " & Request.Form ("firmanavn") & "<br>"
	Mailer.BodyText = "Kontaktperson: " & Request.Form ("kontakt") & "<br>"
	Mailer.BodyText = "Adresse: " & Request.Form ("adresse") & "<br>"
	Mailer.BodyText = "Poststed: " & Request.Form ("postkod") & " " & Request.Form ("poststed") & "<br><br>"
			
	Mailer.ContentType = "text/html"
			
	if Mailer.SendMail then
  		Response.Write "Takk!"
	else
  		Response.Write "Mail send failure. Error was " & Mailer.Response
	end if
Else	%>
<form action="?page=katalog" method="post" name="katalog">
      firmanavn:<input name="firmanavn" type="text" class="formField" id="firmanavn"><br>
      adresse:<input name="adresse" type="text" class="formField" id="adresse"><br>
      postkod:<input name="postkod" type="text" class="formField" id="postkod"><br>
      poststed:<input name="poststed" type="text" class="formField" id="poststed"><br>
      epost:<input name="epost" type="text" class="formField" id="epost"><br>
      kontaktperson:<input name="kontakt" type="text" class="formField" id="kontakt"><br>
<input name="send" type="hidden" id="send" value="yes">
<input name="Submit" type="submit" class="bestill" value="bestill">
</form>
<% End If %>
Medlem sedan aug. 20012 349 inlägg
#2

Vad är det du vill validera?

Medlem sedan apr. 200522 inlägg
#3

så att användaren inte skickar iväg vissa fält tomma

Medlem sedan jan. 2002992 inlägg
#4

Kika me IF-satser..

if request.form("firmanavn") = "" then

:)

Medlem sedan nov. 20011 551 inlägg
#5

javascript...

slipper du parsa asp via servern.

<script language="javascript">
function validate_form ( )
{
    valid = true;

    if ( document.anmalan.foretag.value == "" )
    {
        alert ( "Var snäll och fyll i fältet 'Deltagande Företag/organisation'." );
        valid = false;
    }

    if ( document.anmalan.orgnr.value == "" )
    {
        alert ( "Var snäll och fyll i fältet 'Organisationsnummer'." );
        valid = false;
    }

    if ( document.anmalan.postort.value == "" )
    {
        alert ( "Var snäll och fyll i fältet 'Postnummer och postort'." );
        valid = false;
    }

    if ( document.anmalan.kontaktpers.value == "" )
    {
        alert ( "Var snäll och fyll i fältet 'Kontaktpersonens namn'." );
        valid = false;
    }

    if ( document.anmalan.tfndir.value == "" )
    {
        alert ( "Var snäll och fyll i fältet 'Telefonnummer, direkt'." );
        valid = false;
    }

    return valid;
}

//-->

</SCRIPT>

formen gör du såhär:


<form name="anmalan" method="post" onSubmit="return validate_form ( );">

ändra dina fält så att de passar in... detta är bättre än att validera mha asp för du slipper requesta serven innan du postar

Medlem sedan jan. 2002992 inlägg
#6

Tänkte först på javascript men dom går ju att komma förbi.
Om man nu vet hur man skall göra..

Tänkte då att det var säkrare än javascript..

Medlem sedan apr. 200522 inlägg
#7

Komma förbi javascript? Tror iofs inte att den normala användaren ens funderar i dom banorna.

Har testat med att slänga in if-satser precis som webbSAJTEN skriver men fick det inte att funka, formuläret skickas ändå. hur skulle du sätta in dom?

if request.form("firmanavn") = "" then 
          value = "no"
          errorMess = "fyll i ert firmanavn"
else sendValue = "yes"

och i submit:

<input name="send" type="hidden" id="send" value="<%=sendValue%>">

men formuläret skickas ändå

Medlem sedan dec. 20025 483 inlägg
#8

ASP-validering sker på den mottagande sidan. Med andra ord måste du alltså skicka iväg formuläret och därefter validera fälten. Med hopparns kod skickas ingenting.

Jag tycker du skall använda bägge teknikerna.

Medlem sedan apr. 200522 inlägg
#9

båda? nu blev jag snurrig :OO

Medlem sedan dec. 20025 483 inlägg
#10

Enkelt exempel:

<script type="text/javascript">

function validate(obj){
  var elms = obj.elements;

  if (elms["namn"].value.length == 0){
    alert("Du måste fylla i namn!");
    return false:
  }

  return true;
}

</script>

<form action="sida2.asp" method="post" onsubmit="return validate(this)">
  <input name="namn">
  <input type="submit">
</form>

sida2.asp:

dim namn
namn = request.form("namn")

if len(namn) < 1 then
  response.write "Du måste fylla i ditt namn!"
  ...
else
  ' Ok, fältet ifyllt, gör något kuligt!
  ...
end if
Medlem sedan nov. 20011 551 inlägg
#11

lite OT. När jag validerar asp och struntar i javascript brukar jag posta sidan tillbaka till sig själv... typ
if formulärfält si och så är ifyllt
skicka formen
else
visa hela sidan med formuläret etcetera
end if

Medlem sedan apr. 200522 inlägg
#12

hopparn skrev:

lite OT. När jag validerar asp och struntar i javascript brukar jag posta sidan tillbaka till sig själv... typ
if formulärfält si och så är ifyllt
skicka formen
else
visa hela sidan med formuläret etcetera
end if

det är det jag försöker göra jag med

Medlem sedan juli 20041 183 inlägg
#13

Det bästa är precis som Peter_S skriver det bästa... Man kan ju skapa egna formulär eller stänga av javascript för att ändå skicka felaktig data. Så om någon gör det så stoppas det i ASP-koden på server-sidan... Är det fel så skriv ut värdena som användaren skickade i formuläret igen...

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)