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..
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..
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?
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.