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
<!-- #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)?")) {
parent.sidan.location.href="login.asp?page=login&makecookie=yes"
} else {
parent.sidan.location.href="index2.asp?login=login&makecookie=no"
}
}
</script>
</head>
<body>
<!-- #Include file="top.asp" -->
<%
If Request.QueryString("page") = "login" Then
SQL = "SELECT anvnamn FROM medlemar WHERE anvnamn = '" & Trim(Request.Form("anvnamn")) & "' AND losen = '" & Trim(Request.Form("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 = '" & Trim(Request.Form("anvnamn")) & "'"
Connection.Execute(SQLL)
Session("user") = Trim(Request.Form("anvnamn"))
If Request.QueryString("makecookie") = "yes" Then
Response.Cookies("sf_login") = Trim(Request.Form("anvnamn"))
End If
Response.Redirect"index2.asp"
End If
End If
%>
<form 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="submit" value=" Logga in ">
<a href="glomtlosen.asp">Glömt lösenordet?</a>
</td>
</tr>
</table>
</form>
<!-- #Include file="bottom.asp" -->
</body>
</html>
<!-- #Include file="closeconnection.asp" -->
Tacksam för lite respons första sommarlovsnatten. ;) :)
<%
If Request.Cookies("sf_login") <> "" Then
Session("user") = Request.Cookies("sf_login")
Dim inloggad
inloggad = "true"
SQLGettyp = "SELECT typ FROM medlemar WHERE anvnamn = '" & Session("user") & "'"
Set rsGettyp = Connection.Execute(SQLGettyp)
Dim typ
typ = rsGettyp("typ")
rsGettyp.Close
Set rsGettyp = Nothing
SQLSetonline = "UPDATE medlemar SET status = True WHERE anvnamn = '" & Session("user") & "'"
Connection.Execute(SQLSetonline)
Else
inloggad = "false"
End If
If Session("user") <> "" Then
inloggad = "true"
End If
%>
Om du skriver ut cookiesen, innehåller den sitt värde då?
Jag tror inte att du kan sätta din session för att sen i nästa rad använda den, fast det borde iofs kanske bara påverka vid första försöket...
Du kan ju testa med att skriva:
<%
If Request.Cookies("sf_login") <> "" Then
If NOT Session("user") <> "" then
user = Request.Cookies("sf_login")
Session("user") = user
Else
user = Session("user")
End If
Dim inloggad
inloggad = "true"
SQLGettyp = "SELECT typ FROM medlemar WHERE anvnamn = '" & user & "'"
Set rsGettyp = Connection.Execute(SQLGettyp)
Dim typ
typ = rsGettyp("typ")
rsGettyp.Close
Set rsGettyp = Nothing
SQLSetonline = "UPDATE medlemar SET status = True WHERE anvnamn = '" & user & "'"
Connection.Execute(SQLSetonline)
Else
inloggad = "false"
End If
If Session("user") <> "" Then
inloggad = "true"
End If
%>
När du blir ivägskickad med hjälp av din confirm postas väl aldrig formuläret? så du kan inte komma åt den informationen.
Så som jag ser det måste du antingen lägga "svaret" från confirmen i ett hiddenfält, posta formuläret och sen hantera infon på nästa sida.
Förresten, ska det inte vara page=login på den andra url:en också?
Jo... :r :p
Testade din kod @ men det ville inte fungera då heller. :l
Inga felmeddelanden eller så men inget vill skickas med, det enda som skickas med är page=login men inget annat, det verkar inte som om man byter sida utan man kommer dit som formuläret pekar vilket som... :l
Måste det inte vara en:
return false;
med där någonstans också?
Nja, funktionen behöver egentligen inte returnera någonting, men som onsubmit-eventhandlern är skriven så ser det lite dumt ut. Jag hade tagit bort onsubmit från form-taggen och bytt ut submitknappen mot <input type="button" value=" Logga in " onclick="fraga();">.