---
title: "Snälla felmedelanden?!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/14419-snälla-felmedelanden"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jesper T"
published: "2002-02-09T17:44:00.000Z"
updated: "2002-02-13T17:53:00.000Z"
replies: 17
views: 269
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/14419-snälla-felmedelanden"
---

# Snälla felmedelanden?!

## #1 — Jesper T, 2002-02-09T17:44Z

Hej, allt detta funkar hjälpligt, prblemet är att när jag skriver en dublett på användarnamnet (username) så kommer inte mitt snälla felmeddelande upp, varför?Är denna kod ful eller går det att göra på ett annat sätt? **OBS! Lång kod!**

```
<%
Option Explicit
Dim sql,rsUser,username,password,passwordconfirm,firstname,surname,address,zip,city,country,phone,mobil,email,dob,sex,notfilled(14),badflag,count,passwordLength,calltype,icon,dobmonth,dobday,member,lastlog
Dim besok,jmail,fritext

'Assign form values to variables
username = Request.Form("username")

'Make sure they've not put any quotation marks in their username
If InStr(username,chr(34)) <> 0 or InStr(username,chr(39)) <> 0 then
	errorfunction("invalidchars")
end if

'Make sure they've not put any quotation marks in their password
If InStr(password,chr(34)) <> 0 or InStr(password,chr(39)) <> 0 then
	errorfunction("invalidchars")
end if
firstname = Request.Form("firstname")
surname = Request.Form("surname")
address = Request.Form("address")
zip = Request.Form("zip")
city = Request.Form("city")
country = Request.Form("country")
phone = Request.Form("phone")
mobil = Request.Form("mobil")
email = Request.Form("email")
fritext = Request.Form("fritext")
sex = Request.Form("sex")
password = Request.Form("password")
passwordconfirm = Request.Form("passwordconfirm")
dob = Request.Form("birth_day") & "/" & Request.Form("birth_month") & "/" & Request.Form("birth_year")
icon = Request.Form("icon")
member = Request.Form("member")
besok = "1"
lastlog = Request.Form("timecode")

badflag = 0

if firstname = "" then
	notfilled(0) = "F&ouml;rnamnet"
	badflag = 1
end if
if surname = "" then
	notfilled(1) = "Efternamnet"
	badflag = 1
end if
if address = "" then
	notfilled(2) = "Gatuadressen"
	badflag = 1
end if
if zip = "" then
	notfilled(3) = "Postnummret"
	badflag = 1
end if
if city = "" then
	notfilled(4) = "Orten"
	badflag = 1
end if
if country = "" then
	notfilled(5) = "Landet"
	badflag = 1
end if
if phone = "" then
	notfilled(6) = "Hemtelefonnummret"
	badflag = 1
end if
if mobil = "" then
	notfilled(7) = "Mobiltelefonnummret"
	badflag = 1
end if
if email = "" then
	notfilled(8) = "E-postadressen"
	badflag = 1
end if
if username = "" then
	notfilled(9) = "Anv&auml;ndarnamnet"
	badflag = 1
end if
if password = "" then
	notfilled(10) = "L&ouml;senordet"
	badflag = 1
end if
if sex = "" then
	notfilled(11) = "K&ouml;net"
	badflag = 1
end if
if IsDate(dob) = "False" then
	notfilled(12) = "F&ouml;delsedatumet"
	badflag = 1
end if
if icon = "" then
	notfilled(13) = "Ditt ikonval"
	badflag = 1
end if

if badflag = 1 then
	signuperror()
end if

passwordLength = Len(password)
if passwordLength < 5 or passwordLength > 15 then
	errorfunction("length")
end if

if password <> passwordconfirm then
	errorfunction("confirm")
end if

%>
<!--#include virtual="/cn.asp"-->
<%
UserUpdate()

Function UserUpdate()

Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.open "users", cn, 3, 3
rsUser.AddNew
rsUser("username") = username
rsUser("password") = password
rsUser("firstname") = firstname
rsUser("surname") = surname
rsUser("address") = address
rsUser("zip") = zip
rsUser("city") = city
rsUser("country") = country
rsUser("phone") = phone
rsUser("mobil") = mobil
rsUser("email") = email
rsUser("dob") = dob
rsUser("fritext") = fritext
rsUser("sex") = sex
rsUser("icon") = icon
rsUser("member") = member
rsUser("lastlogg") = lastlog
rsUser("besok") = besok
rsUser.Update

if Err.Number = -2147217887 then
	Err.clear
	errorfunction("badusername")
else

Set jmail = Server.CreateObject("JMail.Message")
 
jmail.AddRecipient "" & email & "", "" & firstname & ""
jmail.AddRecipientBCC ("jesper.trn@test.com")
	
jmail.From = "info@test.nu"
Jmail.Priority = 1
jmail.Subject = "Välkommen till test!"
jmail.appendHTML "<html><head></head><body><font face=tahoma,verdana size=2>"
jmail.appendHTML "<h4>Välkommen " & firstname & " "& surname &"</h4><br>  "
jmail.appendHTML "Förnamn:   "& firstname &"<br>"
jmail.appendHTML "Efternamn: "& surname &"<br>"
jmail.appendHTML "Adress:    "& address &"<br>"
jmail.appendHTML "Postnummer:"& zip &"  "
jmail.appendHTML "Postadress:"& city &"<br>"
jmail.appendHTML "Land:      "& country &"<br>"
jmail.appendHTML "------------------------------------------<br>"
jmail.appendHTML "Födelsedata:"& dob &"<br>"
jmail.appendHTML "Hemtelefon: "& phone &"<br>"
jmail.appendHTML "Mobiltfn:   "& mobil &"<br>"
jmail.appendHTML "------------------------------------------<br>"
jmail.appendHTML "<b>Användarnamn:</b>  " & username & "<br>"
jmail.appendHTML "<b>Lösenord:	  </b>  " & password & "<br>"
jmail.appendHTML "------------------------------------------<br>"
jmail.appendHTML "Det är trevligt att ha fått dig som medlem på test ... massa text kanske..<br>"
jmail.appendHTML "<br>"
jmail.appendHTML "</font></form></body></html>"
jmail.Send( "smtp.test.nu" )
Set jmail = nothing

	Response.Cokies("username") = username 
	Response.cokies("firstname") = firstname
%>
<html>
<head>
<title>test</title><LINK href="style_main.css" rel=stylesheet>
</head>
<body bgcolor="#FFFFFF">
<table width="45%" border="0">
  <tr> 
    <td width="24%"><img src="bilder/logo.gif" width="238" height="65"></td>
    <td width="23%">&nbsp;</td>
    <td width="53%">&nbsp;</td>
  </tr>
</table>
<p><font size="4">V&auml;lkommen!</font></p>
<p><font size="2">Och tack<font color="#FFFFFF">.</font><%=firstname%><font color="#FFFFFF">.</font></font> <font size="2"><%=surname%><font color="#FFFFFF">.</font>f&ouml;r din anm&auml;lan om medlemskap 
  p&aring; test</font></p>
<form name="form1" method="post" action="visit/visit_prew.asp" onsubmit="window.open('','fonster','width=500,height=350');" target="fonster">
  <input type="hidden" name="firstname" value="<%=firstname%>">
  <input type="hidden" name="surname" value="<%=surname%>">
  <input type="hidden" name="address" value="<%=address%>">
  <input type="hidden" name="zip" value="<%=zip%>">
  <input type="hidden" name="city" value="<%=city%>">
  <input type="hidden" name="country" value="<%=country%>">
  <input type="hidden" name="phone" value="<%=phone%>">
  <input type="hidden" name="mobil" value="<%=mobil%>">
  <input type="hidden" name="email" value="<%=email%>">
  <font size="2"> Jag best&auml;ller samtidigt visitkort: 200 st 
  <input type="radio" name="antal" value="200" checked>
  , 400st</font> 
  <input type="radio" name="antal" value="400">
  <input type="submit" name="Submit" value="Granska">
</form>
<table width="423" border="0" height="288">
  <tr> 
    <td> 
    </td>
  </tr>
</table>
<p align="left">&nbsp;</p>
<p><font size="2">Ditt anv&auml;ndarnamn &auml;r <%=username%>, och du &auml;r nu inloggad.</font></p>
<p>&nbsp;</p>
<p><a href="/indext.asp"><font face="Verdana, Arial, Helvetica, sans-serif">Tillbaka 
  till hemsidan</font></a> 

</body>
</html>

<%
rsUser.close
set rsUser = nothing
cn.close
set cn = nothing

end if
End Function%>
<%Function signuperror()%>
<html>
<head>
<title>test</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
<font face="arial,helvetica" size=2>

<p><b>Du har inte fyllt i f&ouml;ljande f&auml;lt korrekt:</b></p>

<%for count = 0 to 13%>
	<%if notfilled(count) <> "" then%>
	<b><%=notfilled(count)%></b><br>
	<%end if%>
<%next%>

<p><a href="javascript:self.history.go(-1)">F&ouml;rs&ouml;k igen!</a></p>

</font>
</body>
</html>
<%Response.end
End Function%>

<%Function errorfunction(calltype)%>
<html>
<head>
<title>test</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
<font face="arial,helvetica" size=2>

<%if calltype = "confirm" then%>
<p><b>Din l&ouml;senords bekr&auml;ftelse st&auml;mmer inte! </b></p>
<p><a href="javascript:self.history.go(-1)">F&ouml;rs&ouml;k igen!</a></p>

</font>
<%Response.end%>
<%elseif calltype = "length" then%>
<p><b>Ditt l&ouml;senord &auml;r inte mellan 5 och 12 tecken långt!</b></p>
<p><a href="javascript:self.history.go(-1)">F&ouml;rs&oumlk igen!</a></p>
<%Response.end%>
[b]
<%elseif calltype = "badusername" then%>
<p><b>Tyv&auml;rr, anv&auml;ndarnamnet &quot;<%=username%>&quot; andv&auml;nds redan.</b></p>[/b]
<p><a href="javascript:self.history.go(-1)">F&ouml;rs&oumlk igen!</a></p>
<%
Response.end

rsUser.close
set rsUser = nothing
cn.close
set cn = nothing

elseif calltype = "invalidchars" then%>
<p><b>Anv&auml;ndarnamnet kan inte inneh&aring;lla n&aring;gra s&aring;dana tecken.</b></p>
<p><a href="javascript:self.history.go(-1)">F&ouml;rs&oumlk igen!</a></p>

</body>
</html>
<%Response.end%>
<%end if
End Function%>
```

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

## #2 — LarsG, 2002-02-09T17:55Z

Hur är det tänkt att fungera? Har du skapat ett unique constraint på kolumnen username?

Du behöver också lägga till lite kod så att inte körningen avbryts när du får fel.

```
[b]on error resume next[/b]
rs.update
if Err.Number = -2147217887 then
```

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

## #3 — Jesper T, 2002-02-10T02:41Z

> Har du skapat ett unique constraint på kolumnen username?

Jo jag har ju det!

```
if Err.Number = -2147217887 then
Err.clear
errorfunction("badusername")
else
```

Jag tog bort "on error" i denna version men jag fattar att man måste ha med det. När jag har med det så kan man "gå vidare" utan att bli medlem så att säga inget läggs till i databasen men man får access till sidorna!!! = dumt!

Jag vet inte vad som är felet?!

Username skall vara unikt och har jag med on error resume next så blir det så!

MVH Jesper

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

## #4 — LarsG, 2002-02-10T14:46Z

Hur kontrollerar du att en person har access till en sida?

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

## #5 — Jesper T, 2002-02-10T17:53Z

Så här:

```
<%
if Request.Co(o)kies("username") = "" then
  Response.Redirect("nologin.asp?page=index.asp")
end if
session("username") = username%>
```

Kör jag "on error resume next" så skapas ju en kaka med användarnamnet även fast det redan finns en annan användare i databasen med samma användarnamn, det ger den personen access till sidorna en gång. Tar jag bort "on error resume next" så kommer det ett felmeddelande, men det är ju inte så snyggt ju!

MVH Jesper

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

## #6 — Jesper T, 2002-02-10T21:13Z

huummm... ;)

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

## #7 — Jesper T, 2002-02-11T14:24Z

Hjääälp!! :x

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

## #8 — Jesper T, 2002-02-12T07:18Z

Hjäääääääääällllppp!!!!!!!! :x :x :x :x :x :x :x :x :x

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

## #9 — @nders, 2002-02-12T07:22Z

Jag gillar inte riktigt on error resume next.

Kan du inte göra tillräckliga kontroller, så slipper du skapa fel?

Ex: ställ en SELECT-fråga innan du lägger till användaren. Finns användaren redan (dvs du får något annat än ett tomt recordset), så kallar du på din errorfunction.

Det är livsfarligt med on error resume next, eftersom exekveringen av koden ju fortsätter om du inte själv bryter den med if-satser innan varje viktigt statement.

Mvh,

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

## #10 — solbulle, 2002-02-12T21:27Z

Typ:

```
SQL = "SELECT username FROM users WHERE username = "& username
Set rs = Connection.Execute(SQL)
if rs.eof then

'Lägg in i databasen!

Else
'Snubben finns redan!
errorfunction("badusername")
end if
```

Du får komplettera med din öppning o stängning av databasen.
I "vanliga fall" har man väl frågan överst på sidan och kör sen inläggningen med ditt script om allt är ok. (=username finns inte.) Kanske kan gå att kalla på din errorfunktion inuti if-satsen iofs.
Sök annars på tex "om post finns" eller eof el. dyl

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

## #11 — Jesper T, 2002-02-13T02:48Z

gör så här nu, men nu godkänns inga namn! :l

Konstigt

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

## #12 — @nders, 2002-02-13T07:00Z

Hur ser din kod ut nu?

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

## #13 — Jesper T, 2002-02-13T09:21Z

Evighetstföljetongen ser ut ungefär såhär:

```
' kod kod kod massa kod
SQL = "SELECT username FROM users WHERE username = "& username

Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.open "users", conn, 3, 3
if rsUser.eof then
  
rsUser.AddNew
rsUser("username") = username
rsUser("password") = password
rsUser("firstname") = firstname
rsUser("surname") = surname
rsUser("address") = address
rsUser("zip") = zip
rsUser("city") = city
rsUser("country") = country
rsUser("phone") = phone
rsUser("mobil") = mobil
rsUser("email") = email
rsUser("dob") = dob
rsUser("fritext") = fritext
rsUser("sex") = sex
rsUser("icon") = icon
rsUser("member") = member

rsUser.Update
else
Err.clear
	errorfunction("badusername")
end if
' kod kod kod massa kod
```

MVH Jesper

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

## #14 — @nders, 2002-02-13T09:28Z

Du öppnar ju hela tabellen, och inte den SQL-frågan du skrivit. Så länge det finns någon data i tabellen läggs det alltså inte in någonting.

Ändra din rsUser.open-rad till:

```
rsUser.open SQL, conn, 3, 3
```

Mvh,

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

## #15 — Jesper T, 2002-02-13T09:32Z

Ja, du ser vilken nivå vi snackar här :r

Tack!

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

## #16 — Jesper T, 2002-02-13T09:42Z

Ja ha, nu ser det ut så här!

\[Microsoft\]\[ODBC Microsoft Access Driver\] Too few parameters. Expected 1. 

/signupprocess.asp, line 126 

```
SQL = "SELECT username FROM users WHERE username = "& username
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.open SQL, conn, 3, 3 'rad 126
if rsUser.eof then
```

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

## #17 — @nders, 2002-02-13T09:45Z

Ah.

Apostrofer runt användarnamnet:

```
SQL = "SELECT username FROM users WHERE username = '"& username & "'"
```

Eftersom det är en sträng skall den omslutas av apostrofer, annars tolkas det som ett fält, och fältet Pelle finns ju inte, därav felmeddelandet.

Mvh,

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

## #18 — Jesper T, 2002-02-13T17:53Z

Juste, skall genast hacka lite!
Citerar mig själv:

> Ja, du ser vilken nivå vi snackar här

MVH Jesper T

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/14419-snälla-felmedelanden
