Hej alla, Behöver nog se vilken kod du använder. Hej André, Hej André, Varför göra allt så krångligt. Du skulle kunna låta samma usercontrol ha båda tjänsterna. Lägg 2 panels på dessa och visa den ena om man är inloggad och den andra om man inte är det. Troligen har du ett sessions-id på användaren om han/hon är inloggad, så det kan du använda. Tack Pelle för ditt svar! Fungerade utmärkt,Uppdatera sidan när loggat in...
Jag har en användarkontroll för att logga in. När jag loggat in så vill jag att en annan användarkontroll (som ska visa meny för inloggade) ska visas.
Men det gör den inte automatiskt. Måste välja Uppdatera på webbläsaren för att se detta.
Hur gör jag för att undermenyn ska komma upp automatiskt när jag loggat in?
Tack på förhand,
//mvh BjörnSv: Uppdatera sidan när loggat in...
Detta kan ju uppstå av många anledningar. T.ex. att inloggningkoden körs efter meny-visningskoden.Sv:Uppdatera sidan när loggat in...
Tack för ditt svar. Eftersom jag sitter på jobbet nu har jag inte tillgång till koden!
Men. Kanske kan nysta upp det lite ändå.
Både inloggningskod och undermenyn är varsin user control. Vilken är det som körs först. Är den vars kod:
<%@ Register TagPrefix="uc" TagName="Message" Src="usercontrol.ascx" %>
...som ligger högst upp på själva huvudsidan (den kontrollerna laddas in till)? Eller hur avgörs det annars vilken kod som körs först?
Tack på förhand,
//mvh BjörnSv:Uppdatera sidan när loggat in...
Här är koden för min inloggning:
<%@ Control Language="vb" %>
<!--#include file="inkluderingsfiler/globalt.inc.aspx" -->
<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oledb" %>
<%@ Import Namespace="system.web.mail" %>
<script language="VB" runat="server">
'***************************************************************************************
' loggain_klick körs när användaren trycker på "logga in"-knappen
'***************************************************************************************
Sub page_load()
If ispostback=false
Dim medlem_id as integer = Session("medlem_id")
If medlem_id <=0 then
lblRubbe.text = "Logga in"
txtAnvandarnamn.text = ""
txtAnvandarnamn.visible = true
lblMeddelande.visible = true
txtLosenord.visible = true
lblAnvnamn.visible = true
lblLosenord.visible = true
Button1.text = "Logga in"
else
lblRubbe.text = "Inloggad som " & session("anvnamn")
txtAnvandarnamn.visible = false
lblMeddelande.visible = false
txtLosenord.visible = false
lblAnvnamn.visible = false
lblLosenord.visible = false
Button1.text = "Logga ut"
end if
Else
End if
End sub
sub loggain_klick(sender As Object, e As EventArgs)
'// Deklarera sql-sats som kollar om det finns en användare med den inskrivna kombinationen
'// av anvandarnamn och losenord.
Dim strSql as string = "SELECT * FROM tblMedlem WHERE anvnamn='" & txtAnvandarnamn.text & "' AND losenord='" & txtLosenord.text & "'"
'// Hmta data frn databasen och returnerar en Dr
Dim Dr as OLEDBDatareader = datareader_data(strSql)
If button1.text = "Logga ut"
lblRubbe.text = "Logga in"
session.Abandon()
txtAnvandarnamn.text = ""
txtAnvandarnamn.visible = true
lblMeddelande.visible = true
txtLosenord.visible = true
lblAnvnamn.visible = true
lblLosenord.visible = true
Button1.text = "Logga in"
Else
'// Om uppgifterna som användaren skrev in var rätt innehåller Dr någonting så då körs if
if Dr.read() then
txtAnvandarnamn.visible = false
lblMeddelande.visible = false
txtLosenord.visible = false
lblAnvnamn.visible = false
lblLosenord.visible = false
Button1.text = "Logga ut"
'// Ändra så att sessionen varar i 60 minuter
session.Timeout=60
'// Spara Dr's anvndarnamn och anvandarid i sessionsvariablar.
session("anvnamn") = Dr("anvnamn")'spara i session
session("fornamn") = Dr("fornamn")
session("medlem_id") = Dr("Medlem_id")
lblRubbe.text = "Inloggad som " & session("anvnamn")
'// Nästlad if-sats som kollar om "admin" har lagrats i sessionsvariabeln
'// Om det har det så skicka admin till admin-sidan
'if session("anvandarnamn") = "admin" then
'response.Redirect("../4.admin/admin.aspx")
'end if
'// Frhindra lsning.
dr.close()
'// Lt anvndaren slussas till dennes "minsida" efter den blivit inloggad
'response.Redirect("../3.inloggning/minsida.aspx")
'// Om uppgifterna inte hittades fr anvndaren feedback
else
lblMeddelande.text = "obs! Fel användarnamn eller lösenord"
txtAnvandarnamn.text=""
end if
end if
'// Frhindra lsning.
dr.close()
end sub
'***************************************************************************************
'Funktion för att hämta data från databasen
'***************************************************************************************
'Anropas så här:
'Dim Dr as OLEDBDatareader
'Dr = datareader_data("sql-satsen här")
function datareader_data(sql as String) as OLEDBDatareader
'// Deklarera och öppna anslutning
Dim Con as new OLEDBConnection(db)
Con.open()
'// Hämta info från databasen med hjälp av sql-satsen och anslutnings-objektet
Dim Cmd as New OLEDBCommand(sql,Con)
'// Skapa en datareader att lägga information i
Dim Dr as OLEDBDatareader
'// Knyt info från command-objekt till vår datareader
Dr = Cmd.executeReader(Commandbehavior.closeConnection)
'// Returnera datareader
return Dr
'// stäng anslutningen
con.close()
'// sätng datareadern
dr.close()
end function
'***************************************************************************************
</script>
<html>
<head>
<title><%= sidtitel %> - Startsida</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="/css/grabbkvall.css" type="text/css" rel="stylesheet" />
</head>
<body>
<table width="100" border="0" align="left" cellpadding="0" cellspacing="0" class="formtext">
<tr>
<td align="left" valign="top">
<asp:Label id="lblRubbe" CssClass="headline2" runat="server" text="Logga in"></asp:Label><br><br>
<asp:Label id="lblAnvnamn" runat="server" Text="Användarnamn:" cssclass="formtext"></asp:Label><br>
<asp:textbox id="txtAnvandarnamn" tabIndex="1" runat="server" CssClass="formtext"></asp:textbox><br>
<asp:Label id="lblMeddelande" runat="server" cssclass="formtext" forecolor="red"></asp:Label>
</td>
</tr>
<tr>
<td align="left" valign="top">
<asp:Label id="lblLosenord" runat="server" Text="Lösenord:" cssclass="formtext"></asp:Label>
<asp:textbox id="txtLosenord" tabIndex="2" runat="server" CssClass="formtext" TextMode="Password"></asp:textbox>
</td>
</tr>
<tr>
<td align="left" valign="top">
<asp:button id="Button1" onclick="loggain_klick" runat="server" CssClass="formtext" Text="Logga in"></asp:button>
</td>
</tr>
</table>
</body>
</html>
Koden för undermenyn som ska visas när man är inloggad:
<%@ Control Language="vb" %>
<!--#include file="inkluderingsfiler/globalt.inc.aspx" -->
<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oledb" %>
<%@ Import Namespace="system.web.mail" %>
<script language="VB" runat="server">
sub page_load()
Dim medlem_id as integer = Session("medlem_id")
If medlem_id <=0 then
menu2a.visible=false
menu2b.visible=false
menu2d.visible=false
lblMenyval.visible=false
else
menu2a.visible=true
menu2b.visible=true
menu2d.visible=true
lblMenyval.visible=true
end if
end sub
</script>
<html>
<head>
<title><%= sidtitel %> - Startsida</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="/css/grabbkvall.css" type="text/css" rel="stylesheet" />
</head>
<body>
<table width="100" border="0" align="left" cellpadding="0" cellspacing="0" class="formtext">
<tr>
<td align="left" valign="top" bordercolor="#FFFFFF">
<p><strong><asp:Label id="lblMenyval" runat="server" Text="Menyval" cssclass="formtext"></asp:Label></strong></p>
<p>
<asp:hyperlink CssClass="meny2" ID="menu2a" Width="120" NavigateUrl="index.aspx?pageid=member_info" runat="server" Text="Min sida" Visible="true" />
<asp:hyperlink CssClass="meny2" ID="menu2b" Width="120" NavigateUrl="index.aspx?pageid=create1" runat="server" Text="Lägg upp kväll" Visible="true" />
<asp:hyperlink CssClass="meny2" ID="menu2d" Width="120" NavigateUrl="index.aspx?pageid=mynights_start" runat="server" Text="Mina kvällar" Visible="true" />
<br>
</p>
</td>
</tr>
</table>
</body>
</html>
Och till sist (själva huvudsidans topp):
<%@ Register TagPrefix="tagprx_mt" TagName="Huvudmall" Src="meny_top.ascx" %>
<%@ Register TagPrefix="tagprx_mt" TagName="logginmall" Src="meny_left.ascx" %>
<%@ Register TagPrefix="tagprx_mt" TagName="Bottenmall" Src="meny_bottom.ascx" %>
<%@ Register TagPrefix="tagprx_mt" TagName="Undermenymall" Src="meny_underleft.ascx" %>
<%@ Page Language="VB" Debug="true" ContentType="text/html" ResponseEncoding="iso-8859-1"%>
<!--#include file="inkluderingsfiler/globalt.inc.aspx" -->
<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oledb" %>
<%@ Import Namespace="system.web.mail" %>
<script language="VB" runat="server">
Tack på förhand!
//mvh Björn
Sv: Uppdatera sidan när loggat in...
<code>
if session("userid") > 0
panelLogin.visible = false
panelUserInfo.visible = true
else
panelLogin.visible = true
panelUserInfo.visible = false
end if
</code>Sv:Uppdatera sidan när loggat in...
Ibland gör man det svårare än vad det är!
//mvh Björn