webForumDet fria alternativet

Finns det...

ASPur ASP

16 svar · 312 visningar · startad av Firegamez.com

Medlem sedan juli 2002231 inlägg
Frågan#1

hmmmm tar bort denna fråga! Den var dum, va bara en kompis som sa de!

Medlem sedan juli 20011 084 inlägg
#2

öhh... va?

säg vad ditt problem är så får du nog mycket mer hjälp ska du se!

Medlem sedan juli 2002231 inlägg
#3

Tack......... Jag e nog lite korkad men hur får man användarnamnet att stanna kvar?????? Det man sist loggade in me??? Ska jag bifoga koden där jag vill ha den???

Medlem sedan mars 20025 907 inlägg
#4

Ja! Bifoga koden. Annars fattar ingen något?!? (åtminstonde inte jag) :)

Medlem sedan mars 2002777 inlägg
#5

på inloggningssidan när inloggningen lyckas:

Response.Cookies("Login")("Username") = objRS("Username")
Response.Cookies("Login").Expires = DateAdd("d",365,Now())

och sedan i formuläret

<input type="text" name="username" value="<%= Request.Cookies("Login")("Username") %>">
Medlem sedan juli 2002231 inlägg
#6

Här är koden där man loggar in! Borde vara någon stanns där! *OBS* Det är ett glömt lösenord script inbyggt i koden!!!*OBS*

<% Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("com/db/members.mdb")&";pwd=********"
 
SQL = "SELECT Count(*) From members"
Set rs = db.Execute(SQL)
%>
<%=RS.Fields(0) %></td>
</tr>
</table>
<p align="center">
<left>

<table border="0" height="297" cellpadding="2" align="right" width="213"><tr valign="top">
<td bgcolor="#FF8040" width="203" style="border: 1px solid Black" height="268">
<form name="form1" method="post" action="com/login_check.asp" onSubmit="return formCheck()">
<p align="left">
<b>Namn:</b><br><input type="text" name="username" size="21"><br>
<b>Lösenord:</b><br>
<input type="password" name="losen" size="21"><br>
<input type="submit" name="Submit" value="Logga in"> </p>
</form>
<form name="form2" method="post" action="com/lost.asp">
<p align="left">
<b>Glömt lösenordet???</b>
<input type="text" name="username" size="30">
<input type="submit" name="Submit" value="Skicka"><br>
<b>Fylli ditt användarnamn, tryck skicka, kolla mailen.<br>
<br>
&nbsp;</b></p>
</form>
Medlem sedan juli 2002231 inlägg
#7

LAMP menar du när man kommer in eller när den kolla in loggningen???(Login_check.asp) asså eller sidan man kommer till?

Medlem sedan mars 2002777 inlägg
#8

när du kollar inloggningen och kriterierna uppfylls, dvs att användarnamn och lösen är rätt, skapar du kakan enligt översta koden. Du får anpassa objRS("Username") efter ditt fält i databasen. Sedan skriver du ut kakan som ett förvalt value i formuläret.

Medlem sedan juli 2002231 inlägg
#9

Jag har gjort som du sa men det fungerar ändå inte! Har är koden som ser ifall anv. och lösen är rätt! Med koden inne i!
[KOD]
<!-- #include file="adovbs.inc" -->
<% Session.LCID = 1053

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb")&";pwd=*******"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From members"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

'----- Rensar bort sånna som inte loggat ut korrekt.. -------

Do Until RecSet.EOF

If RecSet("status") = "online" AND DateDiff("n", RecSet("datum"), Now) \> 60 Then
	RecSet("status") = "offline"
	RecSet.Update
End If

RecSet.MoveNext
Loop

RecSet.Close

'---------------- SLUT PÅ UTRENSNINGEN ------------------

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

If RecSet("username") = Request.Form("username") AND RecSet("losen") = Request.Form("losen") Then

	RecSet("datum") = Now
	RecSet("status") = "online"
	RecSet("poang") = RecSet("poang") + 1		
	RecSet("klocka") = Time
	RecSet.Update
	
	Session("namn") = RecSet("fnamn") & " " & RecSet("enamn")
	Session("fnamn") = RecSet("fnamn")
	Session("enamn") = RecSet("enamn")
	Session("username") = RecSet("username")
	Session("login") = "ok"
	Session("id") = RecSet("id")
	Session("status") = "online"
	Session("epost") = RecSet("epost")
	Session("poang") = RecSet("poang")
	Session("pressbild") = RecSet("pressbild")

	Session.TimeOut = 60 '\<-- Kontrollera

	RecSet.Close
	Connect.Close
	Set RecSet = nothing
	Set Connect = nothing
	
	Response.Redirect "main.asp"
            **Response.Cookies("username")("username") = objRS("username")
            Response.Cookies("username").Expires = DateAdd("d",365,Now())**

End If

RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Fel användarnamn eller lösenord! Var snäll försök igen"
Response.Redirect "../index.asp"

%>

Medlem sedan mars 2002777 inlägg
#10

Allt som sker efter en response.redirect ignoreras, alltså körs inte koden där kakan initieras. Sedan heter ditt recordsetobject RecSet och inte objRS.

Ett tips är att kolla inloggningen direkt i SQL-frågan.

sql ="select username, losen from members where username = '" & request.form("username") & "' AND losen = '" & request.form("losen") & "' "

set rs = Connect.execute(sql)

If rs.eof then
'#-- felaktig inloggning
else
'#-- korrekt inloggning
end if
Medlem sedan juli 2002231 inlägg
#11

Tack!!!! Det fungerar nu! Tack så hemskt mycke! :D

Medlem sedan mars 20025 907 inlägg
#12

Hör egentligen inte alls hit men...

byt ut

request.form("username") 
och
request.form("losen")

mot

Replace(request.form("username"), "'", "''") 
och
Replace(request.form("losen"), "'", "''")

För att höja säkerheten. Läs mer här

Medlem sedan juni 200032 967 inlägg
#13

...inte bara för att höja säkerheten. Jag använder det primärt för att folk ska kunna skriva apostrofer i text som hanteras i databasfrågor, den lilla extra säkerheten kommer som en bonus.

Tänk er att skriva en text på engelska utan att använda apostrofer.
Slutsats: Gör alltid den replacen på alla fältvärden när du ska ställa SQL-frågan. Informationen lagras ändå på rätt sätt (dvs med en apostrof) i databasen, eftersom den apostrof du lägger till fungerar som ett escape-tecken och talar om för tolken att 'följande tecken tillhör strängen, inte avbryter den'.

Mvh,

Medlem sedan mars 2002777 inlägg
#14

Re: Hör egentligen inte alls hit men...

Peeer skrev:

byt ut

request.form("username") 
och
request.form("losen")

mot

Replace(request.form("username"), "'", "''") 
och
Replace(request.form("losen"), "'", "''")

För att höja säkerheten. Läs mer här

Ska man skriva allt det var gång blir man knäpp, därför har man funktioner till sådant ;)

Function singleQuotFix(txt)
txt = replace(txt,"'","''")
singleQuotFix = txt
End Function
Medlem sedan juli 2002231 inlägg
#15

Det funkar.....PÅ ett sett.... Men när man skriver fel användarnamn så kommer den senaste medlemen upp istället! Vet ni vad om är fel????? Här är koden

<!-- #include file="adovbs.inc" -->
<% Session.LCID = 1053

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb")&";pwd=losen"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From members"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

'----- Rensar bort sånna som inte loggat ut korrekt.. -------

Do Until RecSet.EOF

	If RecSet("status") = "online" AND DateDiff("n", RecSet("datum"), Now) > 60 Then
		RecSet("status") = "offline"
		RecSet.Update
	End If
	
RecSet.MoveNext
Loop
	
RecSet.Close
	
'---------------- SLUT PÅ UTRENSNINGEN ------------------

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF
    Response.Cookies("username")("username") = RecSet("username")
    Response.Cookies("username").Expires = DateAdd("d",365,Now())
	If RecSet("username") = Request.Form("username") AND RecSet("losen") = Request.Form("losen") Then
	
		RecSet("datum") = Now
		RecSet("status") = "online"
		RecSet("poang") = RecSet("poang") + 1		
		RecSet("klocka") = Time
		RecSet.Update
		
		Session("namn") = RecSet("fnamn") & " " & RecSet("enamn")
		Session("fnamn") = RecSet("fnamn")
		Session("enamn") = RecSet("enamn")
		Session("username") = RecSet("username")
		Session("login") = "ok"
		Session("id") = RecSet("id")
		Session("status") = "online"
		Session("epost") = RecSet("epost")
		Session("poang") = RecSet("poang")
		Session("pressbild") = RecSet("pressbild")

		Session.TimeOut = 60 '<-- Kontrollera

		RecSet.Close
		Connect.Close
		Set RecSet = nothing
		Set Connect = nothing
		
		Response.Redirect "main.asp"

	End If

RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Fel användarnamn eller lösenord! Var snäll försök igen"
Response.Redirect "../index.asp"

%>

Har också provat att lägga till det Peer sa.... me det funkade inte!

Medlem sedan apr. 20003 424 inlägg
#16

Det har med att göra att det användarnamnet som passerade login_cgheck.asp utan problem lagras i en cookies och kommer du då med ett felaktigt användarnamn som inte tar sig vidare genom login_check.asp utan skickas tillbaka till startsidan, så stannar det gammla värdet kvar i cookien

*hoppas du fattar min krångliga förklaring* ;)

Medlem sedan mars 2002777 inlägg
#17

flytta in:

Response.Cookies("username")("username") = RecSet("username")
Response.Cookies("username").Expires = DateAdd("d",365,Now())

innanför din if-sats:

If RecSet("username") = Request.Form("username") AND RecSet("losen") = Request.Form("losen") Then

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)