Avatar billede krc_ Nybegynder
17. november 2003 - 11:56 Der er 16 kommentarer og
2 løsninger

Validere at der står noget bestemt i et felt

Hej !

Jeg validere et af mine indtastningsfelter således :

elseif    len(strBesked) < 1 or strBesked ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast en besked.") & "&besked=" & Server.URLEncode(strBesked)

Hvis jeg nu vil validere mit 'hjemmeside'felt således at der ikke behøver være indtastet noget, men HVIS der er så skal det starte med 'Http://' Hvordan katten skriver jeg så det ?
Avatar billede htm Nybegynder
17. november 2003 - 11:58 #1
if left(strBesked,7) = "http://" then
  'do something
end if
Avatar billede krc_ Nybegynder
17. november 2003 - 12:00 #2
men er der så taget højde for at de ikke behøver indtaste noget ?
Avatar billede deeflate Nybegynder
17. november 2003 - 12:01 #3
If strHjemmeside <> "" Then
  if left(strBesked,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
  end if
End if
Avatar billede krc_ Nybegynder
17. november 2003 - 12:59 #4
Nu ser min kode sådan her ud....men der sker ikke rigtigt noget...

elseif    strHjemmeside <> "" then
    if left(strBesked,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
    end if
end if
Avatar billede krc_ Nybegynder
17. november 2003 - 13:05 #5
deeflate > Du er ude i noget med at den selv sætter http:// foran det indtastede ik ?
Det kan jeg ikke få til at virke...men hvis jeg skriver nedenstående :

elseif    len(strBesked) < 1 or strBesked ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast en besked.") & "&besked=" & Server.URLEncode(strBesked)& "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
elseif    strHjemmeside <> "" then
    if left(strBesked,7) <> "http://" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast http:// foran hjemmeside.") & "&besked=" & Server.URLEncode(strBesked)& "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
    end if
end if


Så returnerer den til indtastningssiden med : Indtast http:// foran hjemmeside
MEN......selvom jeg så skriver http:// foran .. så bliver den ved med at komme med den fejlmedelelse ???
Avatar billede deeflate Nybegynder
17. november 2003 - 13:19 #6
Jeg kan ikke lige se, hvorfor den redirecter. Når du har skrevet http://, så bør den jo springe det over...

Men må jeg spørge, hvorfor brugeren overhovedet skal have en fejlmeddelelse og så selv taste det ind, i stedet for at du bare putter det på, hvis det ikke er der?
Avatar billede krc_ Nybegynder
17. november 2003 - 13:23 #7
Jeg vil også meget gerne selv putte det på, men det virker ikke med det eksempel som du vist mig....Men det kan være du kan se noget ud af hele validering :

'Validering af Email feltet
strEmail     = Trim(Replace(replace(Request.Form("email"),"'",""),"<","&lt;"))
strNavn     = Trim(Replace(replace(Request.Form("navn"),"'",""),"<","&lt;"))
strHjemmeside     = Trim(Replace(replace(Request.Form("hjemmeside"),"'",""),"<","&lt;"))
strBesked     = Trim(Replace(replace(Request.Form("Besked"),"'",""),"<","&lt;"))

if    len(strNavn) < 1 or strNavn ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast dit navn.") & "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
elseif len(strEmail) < 1 or strEmail ="" then
  Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast din emailadresse.") & "&email=" & Server.URLEncode(strEmail)& "&navn=" & Server.URLEncode(strNavn)& "&besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
elseif not ValidateEmail(strEmail) Then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Der er fejl i den indtastede emailadresse") & "&email=" & Server.URLEncode(strEmail)& "&navn=" & Server.URLEncode(strNavn)& "&Besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
elseif    len(strBesked) < 1 or strBesked ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast en besked.") & "&besked=" & Server.URLEncode(strBesked)& "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
elseif    strHjemmeside <> "" then
    if left(strBesked,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
    end if
end if


Nu har jeg prøvet at lave det som du viste...så jeg selv smider http:// foran...men det skal jo også kun foran hvis brugeren ikke har indtastet det....??
Avatar billede krc_ Nybegynder
17. november 2003 - 13:24 #8
Prøver lige igen så det ser mere overskueligt ud....
Men princippet er jo at jeg redirecter tilbage til indtastningssiden hvis der er fejl!

'Validering af Email feltet
strEmail     = Trim(Replace(replace(Request.Form("email"),"'",""),"<","&lt;"))

strNavn     = Trim(Replace(replace(Request.Form("navn"),"'",""),"<","&lt;"))

strHjemmeside     = Trim(Replace(replace(Request.Form("hjemmeside"),"'",""),"<","&lt;"))

strBesked     = Trim(Replace(replace(Request.Form("Besked"),"'",""),"<","&lt;"))

if    len(strNavn) < 1 or strNavn ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast dit navn.") & "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)

elseif len(strEmail) < 1 or strEmail ="" then
  Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast din emailadresse.") & "&email=" & Server.URLEncode(strEmail)& "&navn=" & Server.URLEncode(strNavn)& "&besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)

elseif not ValidateEmail(strEmail) Then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Der er fejl i den indtastede emailadresse") & "&email=" & Server.URLEncode(strEmail)& "&navn=" & Server.URLEncode(strNavn)& "&Besked=" & Server.URLEncode(strBesked)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)

elseif    len(strBesked) < 1 or strBesked ="" then
    Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast en besked.") & "&besked=" & Server.URLEncode(strBesked)& "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)

elseif    strHjemmeside <> "" then
    if left(strBesked,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
    end if
end if
Avatar billede deeflate Nybegynder
17. november 2003 - 13:25 #9
Hmm... nu har jeg testet lidt her, og du har ret - den ignorerer http://
Avatar billede krc_ Nybegynder
17. november 2003 - 13:29 #10
okay....kan du lave noget andet så ? :o)
Avatar billede deeflate Nybegynder
17. november 2003 - 13:33 #11
Hehe - vi skal jo lige huske at lede efter http:// i den rigtige streng!

elseif    strHjemmeside <> "" then
    if left(strHjemmeside,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
    end if
end if
Avatar billede deeflate Nybegynder
17. november 2003 - 13:34 #12
Det kunne jo godt forklare det...
Og nu virker det her hos mig :o)
Avatar billede deeflate Nybegynder
17. november 2003 - 13:37 #13
Det var da godt nok en pinlig fejl... :s
Avatar billede krc_ Nybegynder
17. november 2003 - 13:59 #14
Haha......ja selvfølgelig.....man stirrer sig sgu blind i det lort...
Avatar billede krc_ Nybegynder
17. november 2003 - 14:06 #15
Nu virker det så de får besked om at indtaste http:// foran, men hvis jeg nu vil lave det om til at den selv sætter http:// foran får jeg et problem...

if left(strhjemmeside,7) <> "http://" then
    strHjemmeside = "http://" & strHjemmeside
    end if

i stedet for nuværende :

if left(strhjemmeside,7) <> "http://" then
Response.Redirect "indtastrap.asp?msg=" & Server.URLEncode ("Indtast http:// foran hjemmeside.") & "&besked=" & Server.URLEncode(strBesked)& "&navn=" & Server.URLEncode(strNavn)& "&email=" & Server.URLEncode(strEmail)& "&hjemmeside=" & Server.URLEncode(strHjemmeside)
    end if

Fordi når jeg endelig skriver til databasen henter jeg feltet sådan her :

rsAddComments.Fields("hjemmeside") = Request.Form("hjemmeside")

Og der er http:// så ikke med ???
Avatar billede deeflate Nybegynder
17. november 2003 - 14:11 #16
Så skal du jo bare hente strHjemmeside i stedet.

rsAddComments.Fields("hjemmeside") = strHjemmeside
Avatar billede krc_ Nybegynder
17. november 2003 - 14:30 #17
KANON mand....ja jeg er jo nybegynder i ASP som du jo nok har regnet ud hehe...så det er SÅ fedt at kunne få hurtig hjælp her....mange TAAK!!!
Avatar billede deeflate Nybegynder
17. november 2003 - 14:39 #18
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester