webForumDet fria alternativet

Cookie verkar inte skapas?

ASP

23 svar · 612 visningar · startad av Mika3l · sida 2 av 2

Frågan, av Mika3l

Håller på med ett forum med login. När man loggar in så kommer det upp en ruta där man kan välja om man vill bli inloggad varje gång man besöker sidan eller bara för tillfället(OK och Cancel-knappar). När man väljer något av alternativen så ska antingen querystringen makecookie få värdet yes eller no men det verkar inte fungera, man loggas in men sedan så blir man inte inloggad automatiskt... :l

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21

Ja, man kan ju göra på rätt sätt också... ;)

Jag har inte lusläst tråden, så, jag vet inte varför du använder querystrings.
Om du nu ska göra det (jag föreslår att du inte gör det), börja med att sätta metoden i formuläret till GET.
Lägg sedan till ett hiddenfält med namnet makecookie.
Släng tillbaka din tidigare onsubmit i <form>-taggen och ta tillbaka submit-knappen.

Javascriptfunktionen ska se ut så här:

<script language="JavaScript">
function fraga()   {
if(confirm("Vill du bli inloggad automatiskt nästa gång du besöker sidan(OK)?")) {
document.loginform.makecookie.value = "yes";
} else {
document.loginform.makecookie.value = "no";
}
return true;
}
</script>

Otestat, givetvis. Du får den stora äran. ;)

Mvh,

Medlem sedan nov. 20018 492 inlägg
#22

Gick inte så bra @nders. :l
Skickar hela sidan som den är nu...

<!-- #Include file="connection.asp" -->
<!-- #Include file="setonline.asp" -->
<html>
<head>
<title>Logga in</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="JavaScript">
function fraga()   {
if(confirm("Vill du bli inloggad automatiskt nästa gång du besöker sidan(OK)?")) {
document.loginform.makecookie.value = "yes";
} else {
document.loginform.makecookie.value = "no";
}
return true;
}
</script>
</head>
<body>

<!-- #Include file="top.asp" -->

<%
If Request.QueryString("page") = "login" Then
Dim anvnamn, losen
anvnamn = Trim(Request("anvnamn"))
losen = Trim(Request("losen"))
SQL = "SELECT anvnamn FROM medlemar WHERE anvnamn = '" & anvnamn & "' AND losen = '" & losen & "'"
Set rs = Connection.Execute(SQL)
If rs.EOF Then
Response.Write"<center><strong>Fel användarnamn eller lösenord!</strong></center>"
Else
SQLL = "UPDATE medlemar SET status = True WHERE anvnamn = '" & anvnamn & "'"
Connection.Execute(SQLL)
Session("user") = anvnamn
If Request.Form("makecookie") = "yes" Then
Response.Cookies("sf_login") = anvnamn
End If
Response.Redirect"index2.asp"
End If
End If
%>
<form name="loginform" method="post" action="login.asp?page=login" onSubmit="return fraga()">
<table align="center" cellspacing="0" cellpadding="2">
 <tr>
  <td align="center" colspan="2">
<font class="rubrik">Logga in</font>
  </td>
 </tr>
 <tr>
  <td>
Användarnamn:
  </td>
  <td>
<input type="text" name="anvnamn" maxlength="20">
  </td>
 </tr>
 <tr>
  <td>
Lösenord:
  </td>
  <td>
<input type="password" name="losen" maxlength="20">
  </td>
 </tr>
 <tr>
  <td align="left" valign="middle" colspan="2">
<input type="hidden" name="makecookie" value="">
<input type="submit" value="  Logga in  ">
&nbsp;
<a href="glomtlosen.asp">Glömt lösenordet?</a>
  </td>
 </tr>
</table>
</form>

<!-- #Include file="bottom.asp" -->

</body>
</html>

<!-- #Include file="closeconnection.asp" -->

Man blir ju inloggad men nästa gång man besöker sidan så kommer man inte in, med andra ord så fungerar inte cookien...
Har kollat flera gånger om men den får inget värde...

Medlem sedan juni 200032 967 inlägg
#23

Du sätter ju aldrig expires på cookien, då expirar den så fort din session är över.

Mvh,

Medlem sedan nov. 20018 492 inlägg
#24

Aha!
Nu fungerar det jättebra! :D
Tack @nders! :bire

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)