---
title: "Att byta lösenord..men ändå inte"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/48715-att-byta-lösenord-men-ändå-inte"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Choronzon"
published: "2002-07-25T18:46:04.000Z"
updated: "2002-07-26T15:29:44.000Z"
replies: 10
views: 320
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/48715-att-byta-lösenord-men-ändå-inte"
---

# Att byta lösenord..men ändå inte

## #1 — Choronzon, 2002-07-25T18:46Z

Har nu suttit ett tag med det här och jag verkar bara strula till det ju mer jag håller på, så om någon vänlig själ kan tala om vad jag gör för fel så..väldigt tacksam. Felet uppstår när jag ska ändra lösenordet.

Feltyp:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'recset'
login.asp, line 70

```
<%
	response.buffer = true
	Response.Expires = -1500
	session.lcid = 1053
%>
	<!--#include file="adovbs.inc"-->
<%
	set connect = server.createobject("ADODB.connection")
	connect.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db/login.mdb")&";pwd=pwd"
	set style = server.createobject("ADODB.Recordset")
		modi = "SELECT * FROM login"
	style.open modi, connect, adopenstatic, adlockoptimistic

	user = style("user")
	pass = style("pass")
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
	session.abandon
%>
<body>
<% 
	if request.querystring("login") = "checking" then
		session("user") = request.form("user")
		session("pass") = request.form("pass")
			if session("user") = user AND session("pass") = pass then 
				response.redirect "login.asp?login=true" 
			else
				response.redirect "login.asp?login=failed"
			end if
	elseif request.querystring("login") = "true" then

%>
<a href="login.asp?addnew=password">Byt Lösenord</a><br>
<a href="admin_logout.asp">Logga ut </a>
<%

	elseif request.querystring("addnew") = "password" then

%>
<form method="post" action="login.asp?newpass=set">
	Gammalt användarnamn:<br>
	<input type="text" name="oldname" size="20">
	<br>
	Gammalt lösenord:<br>
	<input type="password" name="oldpass" size="20">
	<br><br>
	Nytt användarnamn:<br>
	<input type="text" name="newname" size="20"><br>
	Nytt lösenord:<br>
	<input type="password" name="newpass" size="20">
	<br>
	Bekräfta lösenord:<br>
	<input type="password" name="renew" size="20">
	<br>
	<input type="submit" value="Ändra"> <input type="reset" value="Återställ">
</form>
<%
	elseif request.querystring("newpass") = "set" then

	[b][red]if request.form("oldpass") = recset("pass") AND request.form("renew") = request.form("newpass") AND request.form("oldname") = recset("user") then[/red][/b]
				recset("pass") = request.form("newpass")
				recset("user") = request.form("newname")
				recset.update
%>
Användarnamnet och lösenordet har ändrats
<%
	else
%>
ERROR Kontrollera om användarnamnet och lösenord var rätt inskrivna
<%
	end if
	connect.close
	set connect = nothing
%>
<%
	elseif request.querystring("login") = "request" then
%>
<form method="post" action="login.asp?login=checking">
	Administrator:<br><input type="text" name="user" size="20"><br>
	Password:<br><input type="password" name="pass" size="20" class="input"><p>
	<input type="submit" value="Sign in" class="knapp">
</form>
<%
	else
%>
ERROR Användarnamnet eller lösenordet var felaktigt!
<%
	end if
	set connect = nothing
%>
</body>
</html>
```

edit...
Rensade koden lite..förhoppningsvis blev den mera lättläst..

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

## #2 — LarsG, 2002-07-25T19:32Z

I början så skapar du ett recordset som heter style (och inte recset.)

Ett annat, större, problem är din inloggning. Som det är nu så tar du bara första posten i resultatet.

din select borde innehålla lite villkor för att bara hämta den post som stämmer med request.form("user") och request.form("pass")

```
user = "'" & replace(request.form("user"),"'","''") & "'"
pass = "'" & replace(request.form("pass"),"'","''") & "'"

modi = "select 1 from login where user = " & user & " and pass = " & pass
style.open modi, connect, adopenstatic, adlockoptimistic
```

och sen för att kontrollera om du fått någon post

```
if not style.eof then
'login lyckades
end if
```

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

## #3 — OveRRidE, 2002-07-25T19:32Z

Du skapar ju aldrig 'recset'. Ditt recordset heter ju 'style'. :)

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

## #4 — Choronzon, 2002-07-25T19:34Z

hmm, det där med recset är bara just här, den heter style i min testfil, hade bara glömt ändra..

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

## #5 — Choronzon, 2002-07-25T19:36Z

eller, jaha.. är det recset.update som är fel då?? det har jag inte sett, kollar det..

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

## #6 — Choronzon, 2002-07-25T19:39Z

LarsG, men den inloggningen ska väl funka? Förstår inte riktigt varför?

edit...
Såg nu vad ni menade med mitt recset, ändrade det och har fått det att fungera. Men jag förstår fortfarande inte varför jag inte kan ha det som det är? Det verkar ju fungera, jag kommer inte in om jag skriver fel pass.. Förklara gärna lite mer..

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

## #7 — LarsG, 2002-07-25T20:10Z

Du kontrollerar enbart en post i tabellen. 

om du har 3 användare och resultatet kommer i ordning

A
B
C

och jag försöker logga in som B så kommer det att misslyckas eftersom du bara jämför med A. (Eller skall det bara finnas en användare?)

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

## #8 — Choronzon, 2002-07-25T20:15Z

Jaha då tror jag att jag förstår..

Just i det här fallet tror jag att det blir en bara, men det skadar ju inte med möjligheten till flera, testar lite med det jag fick av dig får vi se..

Men det ska anses som en säker variant som den är annars? Om vi nu säger att det är till 1 anv. alltså, eller borde jag ändra något mera i så fall?

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

## #9 — Ekström, 2002-07-25T20:23Z

Vad är poängen med att köra med databas om det endast är en användare?

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

## #10 — Choronzon, 2002-07-25T20:48Z

För att det är till ett adminsystem för en sida, som i alla fall har en massa andra tabeller. Då tänkte jag att det vore smidigt att använda den, eftersom den ändå finns.

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

## #11 — solbulle, 2002-07-26T15:29Z

Jo, men ska det bara vara en eller ett par användare känns det nästan onödigt att öppna och stänga databasen för den sakens skull.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/48715-att-byta-lösenord-men-ändå-inte
