Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Validering av formulärfält - hjälp!

Postades av 2002-03-14 08:38:37 - Peter From, i forum asp - allmänt, Tråden har 6 Kommentarer och lästs av 503 personer

Hej alla!

Har ett litet problem med ASP (VBScript)... När jag ska validera fält som fylls i (i detta fall en email-adress, ett förnamn, ett efternamn) så lyckas jag bara att kontrollera email-adressen med följande kod:

If (Email = "" OR Instr(1, Email, "@") = 0 OR Instr(1, Email, ".") = 0) Then
Action = "Ogiltig email-adress. Försök igen."

Nu är frågan... Hur validerar jag de två övriga fälten (Lastname och Firstname)? Ovanstående fungerar alldeles utmärkt men fortsätter jag koda för övriga fält så blir det fel...!

Logiken är:

OM emailadressfältet är tomt ELLER inte innehåller tecknet @ ELLER inte innehåller tecknet . DÅ skrivs ett felmeddelande.

Det jag inte få till är fortsättningen:

OM även efternamnsfätet är tomt OCH/ELLER förnamnsfältet är tomt (bägge måste innehålla tecken) DÅ skrivs ett felmeddelande.

Sedan ELSE och koden fortsätter med övriga aktioner.

Tacksam för hjälp.

/Peter


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 09:03:08 - Johan Djupmarker

Något sådant här borde fungera, OBS att du bara får ett felmeddelande även om flera är fel, vill du ha det så eller ska alla fel visas?

<code>
If (Email = "" Or InStr(1, Email, "@") = 0 Or InStr(1, Email, ".") = 0) Then
Action = "Ogiltig email-adress. Försök igen."
ElseIf Len(Firstname) = 0 Then
Action = "Förnamn saknas. Försök igen."
ElseIf Len(Lastname) = 0 Then
Action = "Efternamn saknas. Försök igen."
Else
'alla riktiga
End If
</code>

/Johan


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 09:06:13 - Andreas Hillqvist

<code>
Dim Invalid

If Len(Email) > 0 Then
If Instr(1, Email, "@") = 0 OR Instr(1, Email, ".") = 0 Then
Invalid = True
Action = Action & "Ogiltig email-adress.<br>" & vbcrlf
End If
Else
Invalid = True
Action = Action & "Du har inte angivit email-adress.<br>" & vbcrlf
End If
If Len(Trim(Firstname)) > 0 Then
Invalid = True
Action = Action & "Du har inte angivit förnamn.<br>" & vbcrlf
End If
If Len(Trim(Lastname)) > 0 Then
Invalid = True
Action = Action & "Du har inte angivit efternamn.<br>" & vbcrlf
End If

If Invalid Then
Response.Write Action
Response.Write "Försök igen.<br>" & vbcrlf
Else
'Spara post
End If
</code>


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 09:08:48 - Andreas Hillqvist

Det enklare med en If...ElseIf-sats. Men det är bättre att visa alla felaktigheter sammtidigt. Annars måste användaren skicka om informationen flera gånger för att kunna åtgärda dem. KAn göra användaren frustrerad.


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 09:47:08 - Peter From

Hej Andreas...

Jo, jag testade denna ElseIf-sats (dock utan framgång):

Dim useraction
Dim Email
Dim Firstname
Dim Lastname
Dim Action
Dim SQL

Email = lcase(request.form("Email"))
Firstname = request.form("First_Name")
Lastname = request.form("Last_Name")
useraction = request.form("Join_Quit")

set RS = server.createobject("adodb.recordset")
SQL = "SELECT * FROM List WHERE Email = '" & Email & "'"
RS.open SQL, conn, 2, 2

If (Email = "" OR Instr(1, Email, "@") = 0 OR Instr(1, Email, ".") = 0) Then
Action = "Ogiltig email-adress. Försök igen."
ElseIf (Lastname = "" OR Firstname = "") Then
Action "Du måste fylla i för- och efternamn. Försök igen."

Men det ville inte lira. Jag försökte också att binda ihop alltihop och bara ha ett felmeddelande... Tji fick jag... Ibland så bara fastnar man på de enklaste saker...

/Peter


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 10:02:04 - Peter From

Tjenare Johan!

Denna funkade halvvägs... Fastnade på att email-kontrollen funkade och likaså om man hade ett tomt fält för förnamn. Fyllde jag i förnamn så ville koden fortfarande ha det till att förnamnet saknades.

Här hela koden (kanske enklare att förstå då):

<!--#include file="dsn.asp"-->
<!--#include file="body.asp"-->
<%
Dim useraction
Dim Email
Dim Firstname
Dim Lastname
Dim Action
Dim SQL

Email = lcase(request.form("Email"))
Firstname = request.form("First_Name")
Lastname = request.form("Last_Name")
useraction = request.form("Join_Quit")

set RS = server.createobject("adodb.recordset")
SQL = "SELECT * FROM List WHERE Email = '" & Email & "'"
RS.open SQL, conn, 2, 2

If (Email = "" Or InStr(1, Email, "@") = 0 Or InStr(1, Email, ".") = 0) Then
Action = "Ogiltig email-adress. Försök igen."
ElseIf Len(Firstname) = 0 Then
Action = "Förnamn saknas. Försök igen."
ElseIf Len(Lastname) = 0 Then
Action = "Efternamn saknas. Försök igen."

'Den gamla koden där enbart email-valideringen funkar
'If (Email = "" OR Instr(1, Email, "@") = 0 OR Instr(1, Email, ".") = 0) Then
'Action = "Ogiltig email-adress. Försök igen."
'ElseIf (Lastname = "" OR Firstname = "") Then
'Action "Du måste fylla i för- och efternamn. Försök igen."

Else

select case useraction
case "Join"
if RS.bof and RS.eof then
RS.addnew
RS("Email") = request("Email")
RS("Name_Last") = request("Name_Last")
RS("Name_First") = request("Name_First")
RS("Date_In") = Date
RS.update
Action = "Tack för din prenumeration."

Set JMail = Server.CreateObject ("JMail.SMTPMail")

- jmail-koden finns här

JMail.Execute

else
Action = "Du är redan prenumerant."
end if
case "Quit"
if RS.bof and RS.eof then
Action = "Du är inte prenumerant."
else
sql2="DELETE FROM List WHERE Email = '" & Email & "'"
conn.execute(sql2)

Action = "Din email-adress har raderats."
end if
end select
End If

RS.close
set RS = nothing
%>


Sedan följer html-kod bara...


Svara

Sv: Validering av formulärfält - hjälp!

Postades av 2002-03-14 10:08:20 - Johan Djupmarker

Konstigt, det ser riktigt ut, det är inte så att du har stavat fel någon stans, jag ser att du har skrivit Last_Name på en del ställen och Name_Last på andra t.ex? Annars är det bättre att du använder Andreas kod, den visar alla fel på en gång!

/Johan


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 842
27 960
271 761
794
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies