If Request.Querystring("status") = "check" Then
Session("anvandare") = Request.Form("anvandarnamn")
Session("losenord") = Request.Form("losenord")
If Session("anvandare") = "ss" AND Session("losenord") = "ss" Then
%>
Du är inloggad klicka för att gå in...
<a href="sidan.asp">Till sidan</a>
<%
Else
Response.Write "\<center\>\<font color=""Red""\>Du har angett ett felaktigt användarnamn eller lösenord.\</font\>\</center\>"
End If
End If
%>
så att den kontaktar databasen och hämtar lösenorden därifrån...
Vet inte varför men jag känner mig bara snäll idag.
Kanske för att jag klarat uppkörningen på första försöket idag :e :e :e
#########login1.asp
<form method=post action=login2.asp?status=check>
<table width="250" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="120"><b>Användarnamn:</b></td>
<td width="280"><input type="text" name="anvandarnamn"></td>
</tr>
<tr>
<td width="120"><b>Lösenord:</b></td>
<td width="280"><input type="password" name="losenord"></td>
</tr>
<tr>
<td width="120"> </td>
<td width="280"> </td>
</tr>
<tr>
<td width="120"> </td>
<td width="280"><input type="submit" name="Submit" value=" Logga in "></td>
</tr>
</table>
</form>
######### login2.asp
<%
' LÄNGST UPP PÅ SIDAN START
if request.querystring("status") <> "check" then
response.redirect("login1.asp")
end if
' LÄNGST UPP PÅ SIDAN SLUT
if request.querystring("status") = "check" then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("nyhetdb.mdb")
SQL = "SELECT anvandarnamn, losenord FROM tabellen " & _
"WHERE anvandarnamn = '"&request.form("anvandarnamn")&"' AND " & _
"losenord = '"&request.form("losenord")&"' "
Set RS = Connect.Execute(SQL)
if RS.eof then
response.write "Du har skrivit fel användarnamn eller lösenord!"
else
session("inloggad") = true
response.write "Nu kan du gå till <a href=sidan.asp>sidan</a>"
end if
end if
Connect.close
Set Connect = nothing
Set RS = nothing
%>
På alla sidor som du ska lösenordskydda lägger du sedan till den här kodrader längs upp!
<%
if session("inloggad") <> true then
response.redirect("login1.asp")
end if
%>
------------------
MVH // Cyprys Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.
Får en användare helt unika sessions för varje sida denne går in på?
Tänk t.ex. om en användare går in på annan sida utanför denna webplats och där får Session("inloggad") = true och utan att logga ut där går besökaren till denna sidan, hänger då den sessionen med? Isåfall kan ju denne gå in på sidan utan att logga in.
session måste alltså sättas på din webbplats för att den ska gälla på din webbplats.
när en session sätts på servern, skapas en cookie hos användaren som innehåller ett långt sessionid. detta id kopplas mot sessionen på servern, och sessioner med id som inte skapas hos dig har inte något värde på din webbplats.
Har försökt använda mig av denna kod för att få fram en inloggning, men jag får det alltså inte till att fungera. :(
<%
' LÄNGST UPP PÅ SIDAN START
if request.querystring("status") <> "check" then
response.redirect("admin.asp")
end if
' LÄNGST UPP PÅ SIDAN SLUT
%>
<%
Function Fix(str)
str = Replace(str,"'","''")
str = Server.HTMLEncode(str)
Fix = str
End Function
%>
<%
aID = Fix(Request.form("log"))
losenord = Fix(Request.form("pass"))
%>
<%
if request.querystring("status") = "check" then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db/nyheter_databasen.mdb")
SQL = "SELECT log, pass FROM admin WHERE log = " & aID & " AND pass = '" & losenord & "' "
response.write sql
Set RS = Connect.Execute(SQL)
%>
<%
if RS.eof then
response.write "Du har skrivit fel användarnamn eller lösenord!"
else
session("inloggad") = true
response.write "Nu kan du gå till <a href=sidan.asp>sidan</a>"
%>
<% end if %>
<% end if %>
<%
Connect.close
Set Connect = nothing
Set RS = nothing
%>
Får felmeddelandet,
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/test/admin2.asp, line 39
Detta felet ska ju tydligen ha något med namnet i databasen att göra (då jag sökte efter felet på forumet), men databasen har dessa namn:
id - räknare
log - text
pass - tal
När jag sen skriver ut sql satsen, så får jag med mig det jag vill veta alltså,
SELECT log, pass FROM admin WHERE log = admin AND pass = '666666'
Men varför fungerar det då inte?? :( Tacksam för all hjälp! :P
Hur då? Tanken är ju att den ska utgå ifrån databasen, för att jag ska kunna skapa mer än en användare och kunna t ex. ändra lösenordet via webben? Med din kodsnutt så ska den ju enbart acceptera just de loginet och lösenordet? Kanske jag som missförstått dig, men förklara gärna då, är nämligen långt från haj på asp =/ Men nångång ska ju va den första att lära sig ;)
Tackar för kodsnutten men får exakt samma fel återigen! ' - tecknet betyder väl tal? Hm, får prova göra om hela databasen (enbart en användare än så länge), ska väl förhoppningsvis få ordning på det nångång *hoppas*
Tack iaf :)
red:
Har nu provat göra om databasen, har helt tagit bort det gamla (tänkte att admin kanske var reserverat, som vissa fält är), bytt namn till anv, och bytt bägge fälten till tal med siffror som innehåll. Men jag får ändå felet,
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/test/test2.asp, line 37