---
title: "kolla fält för personnummer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/163565-kolla-fält-för-personnummer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "WebbisNet"
published: "2007-08-17T12:23:01.000Z"
updated: "2007-08-17T17:41:25.000Z"
replies: 8
views: 673
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/163565-kolla-fält-för-personnummer"
---

# kolla fält för personnummer

## #1 — WebbisNet, 2007-08-17T12:23Z

Hur kollar jag så att man anger ett värde

\<% PrintDateBox2 "txtPersonnr", txtPersonnr %\>

```
Sub PrintDateBox2(boxname,vdate)
	dim strYearValue,strMonthValue,strDayValue

	if vdate <> "invalid" then
		strYearValue = trim(year(vdate))
		strMonthValue = trim(month(vdate))
		strDayValue = trim(day(vdate))
	else
		strYearValue = "-1"
		strMonthValue = "-1"
		strDayValue = "-1"
	end if

	redim months(11)
	months(0) = "Jan"
	months(1) = "Feb"
	months(2) = "Mar"
	months(3) = "Apr"
	months(4) = "Maj"
	months(5) = "Jun"
	months(6) = "Jul"
	months(7) = "Aug"
	months(8) = "Sep"
	months(9) = "Okt"
	months(10) = "Nov"
	months(11) = "Dec"

	dim i

	'dag
	Response.Write "<select name=""" & boxname & "_day"">" & vbCrLf
	response.write "<option value=""""></option>"
	for i = 1 to 31
		Response.Write "<option"
		if cint(i) = cint(strDayValue) then
			Response.Write " selected"
		end if
		Response.Write " value=""" & i & """>" & i & "</option>" & vbCrLf
	next
	Response.Write "</select> - "

	'månad
	Response.Write "<select name=""" & boxname & "_month"">" & vbCrLf
	response.write "<option value=""""></option>"
	for i = 1 to 12
		Response.Write "<option"
		if cint(i) = cint(strMonthValue) then
			Response.Write " selected"
		end if
		Response.Write " value=""" & i & """>" & months(i - 1) & "</option>" & vbCrLf
	next
	Response.Write "</select> - "

	'år
	Response.Write "<select name=""" & boxname & "_year"">" & vbCrLf
	response.write "<option value=""""></option>"
	for i = year(now)-75 to year(now)-13
		Response.Write "<option"
		if cint(i) = cint(strYearValue) then
			Response.Write " selected"
		end if
		Response.Write " value=""" & i & """>" & i & "</option>" & vbCrLf
	next
	Response.Write "</select>"

End Sub
```

Permalänk: https://www.webforum.nu/p/163565

## #2 — voigtann1, 2007-08-17T12:47Z

Det du skickar här är en asp kod... du får kontrollera alla dina select name om det har ett värde eller inte.

txtPersonnr_day, txtPersonnr_month, txtPersonnr_year

Permalänk: https://www.webforum.nu/p/2017776

## #3 — WebbisNet, 2007-08-17T12:49Z

det går ju inte kolla med request.form så hur skriver man skmidigast, är trött på att medlemmar inte fyller i nåt vid registrering

Permalänk: https://www.webforum.nu/p/2017777

## #4 — voigtann1, 2007-08-17T12:54Z

Vill du göra det med Javascript ELLER ASP?

Visst går det med ASP med request.form... men du har "dynamiskt namn" på din funktion / sub 
Så på ditt exempel får du ta Request.Form("txtPersonnr_day") , Request.Form("txtPersonnr_month") och Request.Form("txtPersonnr_year") Går även med javascript med folk kan stänga av javascript och då få du felet ändå.

Permalänk: https://www.webforum.nu/p/2017778

## #5 — WebbisNet, 2007-08-17T13:13Z

så här då

```
<%if Request.Form("txtPersonnr_day") and Request.Form("txtPersonnr_month") and Request.Form("txtPersonnr_year") = "" then
response.redirect "reg-form.asp"
end if%>
```

Permalänk: https://www.webforum.nu/p/2017780

## #6 — voigtann1, 2007-08-17T13:17Z

Du skriver i "klartext":

Om txtPerson_day är sant och txtPersonnr_month är sant och txtPersonnr_year är lika med "" då ska du gå till reg-form.asp

Hade nog skrivit:

```
If Request.Form("txtPersonnr_day") = "" Or Request.Form("txtPersonnr_month") = "" Or Request.Form("txtPersonnr_Year") = "" Then
'Något av de 3 val är lika med INGET gå till sidan igen
End If
```

Nu är  det Om två är OK men inte det 3 så skall den ändå gå till tillbaka.

Permalänk: https://www.webforum.nu/p/2017782

## #7 — WebbisNet, 2007-08-17T13:28Z

> **voigtann1 skrev:**
>
> Du skriver i "klartext":
> 
> Om txtPerson_day är sant och txtPersonnr_month är sant och txtPersonnr_year är lika med "" då ska du gå till reg-form.asp
> 
> Hade nog skrivit:
>
>
> ```
> If Request.Form("txtPersonnr_day") = "" Or Request.Form("txtPersonnr_month") = "" Or Request.Form("txtPersonnr_Year") = "" Then
> 'Något av de 3 val är lika med INGET gå till sidan igen
> End If
> ```
>
> Nu är  det Om två är OK men inte det 3 så skall den ändå gå till tillbaka.

är det inte bäst att ha 3 sanna eftersom sidan kan ge ett felmeddelande om nåt fält inte har värde, standard i db innan värde har angetts är 0000-00-00

Permalänk: https://www.webforum.nu/p/2017786

## #8 — voigtann1, 2007-08-17T13:35Z

Tror i detta fallet så spelar det inte någon roll om man kör 'And' eller 'Or' Tror även du inte behöver skriva = "". Jag har lärt mig att man alltid ska vara så negativ över vad användaren fyller i... inte vad vi vill att han ska fylla i. Exempelvis:

```
Dim hasAccess
hasAccess = True

If Not Request.Form("name") = "Bob" Then
hasAccess = False
End If
```

Dvs vi ska aldrig ta för givet att man har tillgång utan om man uppfyller kriterierna det är DÅ du får tillgången.

Allt över 0 och "" är True om jag tänker rätt så visst. Spelar ingen roll vad du har för standard värde i databasen. Du vill egentligen inte tillåta "noll" värden i din registering om du vill ha att användaren måste ha ett födelsedata.

Låt hellre sätta fältet i databasen att den inte får vara lika med null och ge hellre ett felmeddelande än att du gör undantag att det får vara noll värde i din databas på sådna fält.

Permalänk: https://www.webforum.nu/p/2017790

## #9 — RGB, 2007-08-17T17:41Z

Flyttas: JavaScript, DHTML -\> ASP

Permalänk: https://www.webforum.nu/p/2017830

---

Tråden på webben: https://www.webforum.nu/amne/asp/163565-kolla-fält-för-personnummer
