webForumDet fria alternativet

Feö på Session

8 svar · 251 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Hej

Har ett admin system till sidan jag håller påmed nu, för att byta fråga, uppdatera nyheter mm.

Har det här i logga_in.asp:

<!--#include file="../anv_passw.asp" -->
<%
Response.Expires = -1000

Session("username") = Request.Form("namn")
   Session("password") = Request.Form("passw")

If Session("username") = namn AND Session("password") = passw Then
	Response.reDirect "ny_nyhet.asp?action=form"

Else
	Response.Write("<b>Felektigt Namn Eller Passw.</b>" & "<br><br>")
	Response.Write("<a href='javascript:history.go(-1);'><== Tillbaks</a>")

End If
%>

I filen som inkluderas högst upp ligger anv.namn + lösen som:

<%
namn = micke
passw = micke
%>

Sen i de följande filerna, för att kolla:

If Session("username") = namn AND Session("password") = passw Then
	KODEN SOM KÖRS I VARJE FIL....
Else
	Response.Write("<b>Felektigt Namn Eller Passw.</b>" & "<br><br>")
	Response.Write("<a href='javascript:history.go(-1);'><== Tillbaks</a>")

End If

Men skriver jag hela filnamnet i IE så körs filen likförbannat som vanligt.

KAn det bero på att jag har massa kod och flera ifsatser INUTI den första?

Finns det ngt smidigare sätt att göra på?

KoTTeNMedlem sedan sep. 20011 722 inlägg
#2

Kan inte se något fel i din kod. Det är inte så att du loggat in relatift nyligen och sedan testar att skriva in adressen?
Sessioner har standardvärdet att förstöras automatiskt efter 20 (?) minuters inaktivitet på sidan. Om du under dessa 20 minuter skriver in adressen så är du fortfarande inloggad.

Testa att förstöra alla sessioner med följande:

Session.Abandon

Och testa att skriva in adressen igen.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Det är inte så konstigt.

<%
namn = micke
passw = micke
%>

Du ger båda variablerna namn och passw värdet i variabeln micke. Är det inte värdet "micke" du vill ha?

<%
namn = "micke"
passw = "micke"
%>

Red: Det som alltså stod i din kod, eftersom det inte fanns någon variabel som hette micke var Gör detta om session("användarnamn") är tom och session("password") är tom.

Mvh

KoTTeNMedlem sedan sep. 20011 722 inlägg
#4

En sak till, när du på varje lösenordsskyddad sida ska kontrollera om användaren är inloggad behöver du inte kolla om lösenordet och användarnamnet är rätt utan bara om en av sessionerna finns.

If Session("username") = "" Then
Response.Redirect("../start/login.asp?ErrorMSG=1")
End If

Din kod fungerar lika bra, men det är ju onödigt att kontrollera alla uppgifter på varje sida specielt om du sedan ska köra med databas.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#5

Nä, nu blir jag lack, det funkar ÄNDÅ inte:

<html>
<head>
<title>Poll</title>
<link rel="stylesheet" href="../style.css" type="text/css">
<script type="text/javascript" src="../nosecondmouse.js"></script>
<font face='verdana' size='1' color='#000000'>
<%
Response.Expires = -1000

Dim action

action = Request.Querystring("action")

If action = "skicka" Then

If Session("username") = namn AND Session("password") = passw Then

'________________________________________________

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../script/db/db.mdb"))

'________________________________________________

strSQL = "UPDATE Poll_data SET Aktiv = 'Nej' WHERE Aktiv = 'Ja'"

Set oRec = oConn.Execute(strSQL)

'________________________________________________

fraga = Request.Form("fraga")
svar1 = Request.Form("svar1")
svar2 = Request.Form("svar2")
svar3 = Request.Form("svar3")
svar4 = Request.Form("svar4")
svar5 = Request.Form("svar5")
res1 = "1"
res2 = "1"
res3 = "1"
res4 = "1"
res5 = "1"
initDate = Date()
aktiv = "Ja"

'________________________________________________

strSQL = "INSERT INTO Poll_data (Fraga, Svar1, Svar2, Svar3, Svar4, Svar5, Res1, Res2, Res3, Res4, Res5, initDate, Aktiv) VALUES ('" &_
fraga & "','" & Replace(svar1, "'", "''") & "','" & Replace(svar2, "'", "''") & "','" & Replace(svar3, "'", "''") & "','" & Replace(svar4, "'", "''") & "','" & Replace(svar5, "'", "''") &_
"','" & Replace(res1, "'", "''") & "','" & Replace(res2, "'", "''") & "','" & Replace(res3, "'", "''") & "','" & Replace(res4, "'", "''") & "','" & Replace(res5, "'", "''") &_
"','" & Replace(initDate, "'", "''") & "','" & aktiv & "');"

'________________________________________________

Set oRec = oConn.Execute(strSQL)

'________________________________________________

strSQL = "DELETE * FROM Ipadress_data"

'________________________________________________

Set oRec = oConn.Execute(strSQL)

Session.Abandon
'Response.reDirect "visa_poll.asp"
Set strSQL = NOTHING
Set oRec = NOTHING
Set oConn = NOTHING

Else
	Response.Write("<font face='verdana' size='1' color='#000000'><b>Felektigt Namn Eller Passw.</b></font>" & "<br><br>")
	Response.Write("<font face='verdana' size='1' color='#000000'><a href='javascript:history.go(-1);'><== Tillbaks</a></font>")
End If
End If

If action = "form" Then

If Session("username") = namn AND Session("password") = passw Then

%>
<script type="text/javascript">
/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
   får användas fritt så länge som dessa rader står kvar. */

function checkLength(obj,dispobj,mlength){
	if(obj.value.length>mlength){
		obj.value = obj.value.substr(0,mlength);
		alert('Detta fält maximalt innehålla '+mlength+' tecken.');
		obj.focus();
	}
	dispobj.value=mlength-obj.value.length;
}
</script>
</head>
<body topmargin="2" leftmargin="2" rightmargin="0" bottommargin="0">
<div align="left" valign="top">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
      <form action="ny_fraga.asp?action=skicka" method="post" target ="_self">
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Fråga:</b><br><input type="text" name="fraga" size="30" maxlength="35" onKeyUp="checkLength(this,this.form.text1,35);" onKeyPress="checkLength(this,this.form.text1,35);">&nbsp;&nbsp;<input type="text" name="text1" size="2" value="35" disabled onFocus="this.blur();"></td>
		</tr>
		<tr><td width='100%' height='5'></td></tr>
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Svar 1:</b><br><input type="text" name="svar1" size="30" maxlength="25" onKeyUp="checkLength(this,this.form.text2,25);" onKeyPress="checkLength(this,this.form.text2,25);">&nbsp;&nbsp;<input type="text" name="text2" size="2" value="25" disabled onFocus="this.blur();"></td>
		</tr>
		<tr><td width='100%' height='5'></td></tr>
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Svar 2:</b><br><input type="text" name="svar2" size="30" maxlength="25" onKeyUp="checkLength(this,this.form.text3,25);" onKeyPress="checkLength(this,this.form.text3,25);">&nbsp;&nbsp;<input type="text" name="text3" size="2" value="25" disabled onFocus="this.blur();"></td>
		</tr>
		<tr><td width='100%' height='5'></td></tr>
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Svar 3:</b><br><input type="text" name="svar3" size="30" maxlength="25" onKeyUp="checkLength(this,this.form.text4,25);" onKeyPress="checkLength(this,this.form.text4,25);">&nbsp;&nbsp;<input type="text" name="text4" size="2" value="25" disabled onFocus="this.blur();"></td>
		</tr>
		<tr><td width='100%' height='5'></td></tr>
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Svar 4:</b><br><input type="text" name="svar4" size="30" maxlength="25" onKeyUp="checkLength(this,this.form.text5,25);" onKeyPress="checkLength(this,this.form.text5,25);">&nbsp;&nbsp;<input type="text" name="text5" size="2" value="25" disabled onFocus="this.blur();"></td>
		</tr>
		<tr><td width='100%' height='5'></td></tr>
		<tr>
		<td height="10" width="100%" align='left' valign="top"><font face="verdana" size="1" color="#000000"><b>Svar 5:</b><br><input type="text" name="svar5" size="30" maxlength="25" onKeyUp="checkLength(this,this.form.text6,25);" onKeyPress="checkLength(this,this.form.text6,25);">&nbsp;&nbsp;<input type="text" name="text6" size="2" value="25" disabled onFocus="this.blur();"></td>
		</tr>

		<tr><td width='100%' height='10'></td></tr>
		<tr>
		<td height="10" width="50%" align='left' valign="top"><input type="submit" name="knapp" value="Lägg Till">&nbsp;&nbsp;&nbsp;<input type="reset" name="knapp" value="Rensa"></td>
		</tr>
		</form>
		</table>
		</div>
<%
		Session.Abandon
Else
	Response.Write("<font face='verdana' size='1' color='#000000'><b>Felektigt Namn Eller Passw.</b></font>" & "<br><br>")
	Response.Write("<font face='verdana' size='1' color='#000000'><a href='javascript:history.go(-1);'><== Tillbaks</a></font>")
End If

End If

%>

Faan va jag lackar på det här snart...

Ngn som hittar NGT fel?!

@ndersMedlem sedan juni 200032 969 inlägg
#6

Var skapar du variablerna namn och passw nu då :q

MickeA.comMedlem sedan feb. 20034 441 inlägg
#7

det ligger som du ser högst upp i tråden, i en include fil:

<%
namn="micke"
passw="micke"
%>

Som sedan inkluderas i filen logga_in.asp, som i sin tur reDirect'ar vidare till filen ovan, ny_fraga.asp?action=form

@ndersMedlem sedan juni 200032 969 inlägg
#8

inkluderas den filen även i ny_fraga.asp?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#9

Nä, just faan, det är ju det som är felet ...

Men nu funkar det iaf.

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