Et ASP Community på tværs af frames.
Der kommer lige noget forklaring, derefter en meget lang kode.Jeg har et ASP community der består af to filer:
community.mdb
community.asp
Dette community vil jeg gerne kunne arbejde på tværs af frames.
Hvis i går ind på www.trailersiden.dk , klikker på community, kan i se at det arbejde på én side.
Selve indholdet på siden ligger i en Iframe (name=base).
Jeg ville gerne at login kunne være uden for denne Iframe, og når der logges ind kommer mulighederne inde i Iframen. Ydermere vil jeg gerne at session:bruger også ligger uden for framen.
Nu poster jeg koden, og håber på der er én der kan hjælpe mig med:
Hvilke extra sider jeg skal lave.
Hvordan koden skal ændres efter det.
Det skal lige siges, at jeg ikke selv har programmeret dette community.
<%
Response.Buffer = True
mode = Request.QueryString("mode")
'Åbner connection til databasen
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("community.mdb")
%>
<html>
<head>
<title>Trailersidens Community</title>
<link rel="stylesheet" type="text/css" href="../style.css">
<style type="text/css">
input { font-family: verdana; font-size: 8pt; }
select { font-family: verdana; font-size: 8pt; }
textarea { font-family: verdana; font-size: 8pt; }
.head { font-family: verdana; font-size: 20pt; font-weight: bold;}
.small { font-family: verdana; font-size: 10pt;}
</style>
</head>
<style>
BODY {SCROLLBAR-FACE-COLOR: #FFFFFF;
SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF;
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
SCROLLBAR-3DLIGHT-COLOR: #000000;
SCROLLBAR-ARROW-COLOR: #000000;
SCROLLBAR-TRACK-COLOR: #F6F6F6;
SCROLLBAR-DARKSHADOW-COLOR: #000000;}
</style>
<body bgcolor="#efefef" text="#000000" leftmargin="5" topmargin="0" bottommargin="0" marginwidth="0" marginheight="0" style="overflow:auto"><center>
<table width="450" height="20" cellpadding="0" cellspacing="0">
<%
'Forskellig menu alt efter om man er logget ind eller ej
if session("brugernavn") <> "" then
%>
<tr align="middle">
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp">Forsiden</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=own_profile">Din profil</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=inbox">Mailboks</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=bruger_list">Brugerliste</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=logud">Logud</a><span id="font2">|</span></td>
</tr>
</table>
<table width="450" height="20" cellpadding="0" cellspacing="0">
<tr>
<% else %>
<td height="20" width="150"> </td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp">Forsiden</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=opret">Opret</a><span id="font2">|</span></td>
<td height="20" align="middle" width="150" ><span id="font2">|</span><a href="community.asp?mode=login">Login</a><span id="font2">|</span></td>
<td height="20" width="150"> </td>
<% end if %>
</tr>
</table>
<table width="450" height="20" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left"><span id="font2">Du er logget ind som: <%=session("brugernavn")%></span></td>
</tr>
</table>
<table width="450" height="500" cellpadding="0" cellspacing="0">
<tr>
<td colspan="5" align="middle" valign="top">
<% if mode = "" then
'Tæller antallet af profiler
set rs = Conn.Execute("select count(*) as antal from bruger")
antal_profiler = rs("antal")
rs.close
set rs = nothing
%>
<span id="font2">Velkommen til Trailersidens community, der er i øjeblikket <%=antal_profiler%> profiler oprettet.
Community's formål er at jer film-freaks kan diskutere jeres ynglingsfilm m.m.
<br>
Community´et har følgende funktioner:
<table border="0" bordercolor="#000000" cellpadding="0" cellspacing="0">
<tr height="20">
<td align="left" width="130" height="100">
<span id="font2">
<li>Opret profil
<li>Rediger profil
<li>Internt post system
<li>Bruger liste
<li>Oprette Links
</span>
<br>
</td>
</tr>
</table>
<% end if %>
<% if mode = "opret" then
'Hvis brugeren har submittet formularen
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Tjecker om felterne er udfyld
if (Request.Form("brugernavn") <> "" AND Request.Form("adgangskode") <> "" AND Request.Form("email") <> "") then
'Tilføjer brugeren til databasen
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "select * from bruger where brugernavn = '" & Request("brugernavn") & "'"
rs.Open strsql, conn, 1, 3
'Tjecker om brugernavnet er optaget
if rs.eof or rs.BOF then
'Tilføjer brugeren til databasen og sender ham/hende til login siden
rs.AddNew
rs("brugernavn") = Server.HTMLEncode(Request("brugernavn"))
rs("brugerkode") = Server.HTMLEncode(Request("adgangskode"))
rs("brugeralder") = Server.HTMLEncode(Request("alder"))
rs("brugeremail") = Server.HTMLEncode(Request("email"))
rs("brugerHjemmeside") = Server.HTMLEncode(Request("hjemmeside"))
rs("brugerIcq") = Server.HTMLEncode(Request("icq"))
rs("brugerTekst") = Server.HTMLEncode(Request("fri_tekst"))
rs.update
Response.Redirect("community.asp?mode=login")
else
'Skriver at brugernavnet er optaget
Response.Write("<b><font color='red'>Brugernavnet er optaget</span</b><br>")
end if
rs.Close
set rs = nothing
else
Response.Write("<b><font color='red'>Der var fejl i dine indtastninger</span</b><br>")
end if
end if
%>
<span id="font2">Alle felter med <b>fed</b> skrift skal udfyldes for at oprette brugeren:</span><br>
<form method="post" action="community.asp?mode=opret">
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Brugernavn</span</b></td>
<td bordercolor="#ffffff">
<input type="text" name="brugernavn" value="<%=Request("brugernavn")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Adgangskode</span</b></td>
<td bordercolor="#ffffff">
<input type="password" name="adgangskode" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Email</span</b></td>
<td bordercolor="#ffffff">
<input type="text" name="email" value="<%=Request("email")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Hjemmeside</span</td>
<td bordercolor="#ffffff">
<input type="text" name="hjemmeside" value="<%=Request("hjemmeside")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Alder</span</td>
<td bordercolor="#ffffff">
<input type="text" name="alder" value="<%=Request("alder")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">ICQ nummer</span</td>
<td bordercolor="#ffffff">
<input type="text" name="icq" value="<%=Request("icq")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Fri tekst</span</td>
<td bordercolor="#ffffff"><textarea cols="20" rows="6" name="fri_tekst"><%=Request("fri_tekst")%></textarea></td>
</tr>
<tr>
<td bordercolor="#ffffff"> </td>
<td bordercolor="#ffffff"><input type="submit" value="Opret"></td>
</tr>
</table>
</form>
<% end if %>
<% if mode = "login" then
'Hvis brugeren har submittet login formen
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Tjecker om felterner er udfydlt
if Request.Form("brugernavn") <> "" AND Request.Form("adgangskode") <> "" then
Sql = "select * from bruger where brugernavn = '" & Request.Form("brugernavn") & "'"
Set rs = Conn.Execute(sql)
'Tjecker om brugeren eksisterer
if rs.EOF or rs.BOF then
Response.Write("<font color='red'><b>Brugernavnet eksisterer ikke</span</b><br>")
else
'tjecker om passwordsne matcher hinanden
if rs("brugerkode") = Request.Form("adgangskode") then
Session("brugernavn") = Rs("brugernavn")
Response.Redirect("community.asp")
else
Response.Write("<font color='red'><b>Adgangskoden er forkert<br></b></span")
end if
end if
rs.Close
set rs = nothing
else
Response.Write("<font color='red'><b>Du har ikke udfyldt felterne</b></span<br>")
end if
end if
%>
<span id="font2">Login i systemet og få adgang til funktionerne<br>Bemærk, der er ikke forskel på store og små bokstaver!<br>Har du glemt/mistet dit Brugernavn/Password, så skriv til <a href="mailto:admin@trailerisden.dk">Admin</a></span><br>
<form method="post" action="community.asp?mode=login">
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff"><span id="font2">Brugernavn</span</td>
<td bordercolor="#ffffff">
<input type="text" name="brugernavn" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Password</span</td>
<td bordercolor="#ffffff">
<input type="password" name="adgangskode" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"></td>
<td bordercolor="#ffffff"><input type="submit" value="Login"></td>
</tr>
</table>
</form>
<% end if %>
<% if mode = "logud" then
Session.Abandon
Response.Redirect("community.asp")
end if %>
<% if mode = "own_profile" then
'Tjecker om brugeren er logget ind
if session("brugernavn") = "" then
Response.Redirect("community.asp?mode=login")
end if
'Henter brugerens profil
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from bruger where brugernavn = '" & Session("brugernavn") & "'"
rs.open sql, conn, 1, 3
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Opdaterer felterner
rs.update
rs("brugerkode") = Server.HTMLEncode(Request("adgangskode"))
rs("brugeralder") = Server.HTMLEncode(Request("alder"))
rs("brugeremail") = Server.HTMLEncode(Request("email"))
rs("brugerHjemmeside") = Server.HTMLEncode(Request("hjemmeside"))
rs("brugerIcq") = Server.HTMLEncode(Request("icq"))
rs("brugerTekst") = Server.HTMLEncode(Request("fri_tekst"))
rs.update
end if
%>
<span id="font2">Rediger din profil:<br>Ønskes en profil slettet, skriv til admin@trailersiden.dk</span>
<form method="post" action="community.asp?mode=own_profile">
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff"><span id="font2">Brugernavn</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugernavn")%></span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Adgangskode</span</td>
<td bordercolor="#ffffff">
<input type="text" name="adgangskode" value="<%=rs("brugerKode")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Email</span</td>
<td bordercolor="#ffffff">
<input type="text" name="email" value="<%=rs("brugeremail")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Hjemmeside</span</td>
<td bordercolor="#ffffff">
<input type="text" name="hjemmeside" value="<%=rs("brugerhjemmeside")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Alder</span</td>
<td bordercolor="#ffffff">
<input type="text" name="alder" value="<%=rs("brugeralder")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">ICQ nummer</span</td>
<td bordercolor="#ffffff">
<input type="text" name="icq" value="<%=Rs("brugericq")%>" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Fri tekst</span</td>
<td bordercolor="#ffffff"><textarea cols="20" rows="6" name="fri_tekst"><%=Rs("brugertekst")%></textarea></td>
</tr>
<tr>
<td bordercolor="#ffffff"> </td>
<td bordercolor="#ffffff"><input type="submit" value="Opdater" id=submit1 name=submit1></td>
</tr>
</table>
</form>
<%
rs.close
set rs = nothing
end if %>
<% if mode = "inbox" then
'Tjecker om brugeren er logget ind
if session("brugernavn") = "" then
Response.Redirect("community.asp?mode=login")
end if
'Opbygger recordset
set rs = Conn.Execute("select * From mail where mailModtager = '" & Session("brugernavn") & "' order by mailDato desc")
%>
<span id="font2">Klik på emnet for at læse en email:</span><br><br>
<table border="0">
<tr>
<td bgcolor="#ffffff"><span id="font2"><b>Afsender</b></span</td>
<td bgcolor="#ffffff"><span id="font2"><b>Emne</b></span</td>
<td bgcolor="#ffffff"><span id="font2"><b>Dato</b></span</td>
<td bgcolor="#ffffff"></td>
</tr>
<% if rs.eof or rs.bof then %>
<tr>
<td colspan="3" align="center"><span id="font2">Ingen meddelser</span</td>
</tr>
<% else
Do until rs.eof %>
<tr>
<td><span id="font2"><%=rs("mailAfsender")%></span></td>
<td><span id="font2"><a href="community.asp?mode=read_mail&mailid=<%=rs("mailid")%>"><%=rs("mailEmne")%></a></span></td>
<td><span id="font2"><%=rs("mailDato")%></span</td>
<td>
<%
'Forskelligt billede alt efter om emailen er læst/ulæst
if rs("mailread") <> True then %>
<img src="mail_unread.gif">
<% else %>
<img src="mail_read.gif">
<% end if %>
</td>
</tr>
<% rs.movenext
loop
end if %>
</table>
<br>
<br>
<a href="community.asp?mode=ny_email">Ny email</a>
<%
rs.close
end if %>
<% if mode = "read_mail" then
'Tjecker om brugeren er logget ind
if session("brugernavn") = "" then
Response.Redirect("community.asp?mode=login")
end if
'Hiver info om emailen frem:
Set rs = Conn.Execute("select * from mail where mailid = " & Request.QueryString("mailid"))
Conn.Execute("update mail set mailread = True")
'Tjecker om emailen tilhører brugeren der vil læse den
if rs("mailmodtager") <> Session("brugernavn") then
Response.Redirect("inbox.asp")
end if
%>
<table border="0" bordercolor="#000000">
<tr>
<td bgcolor="#ffffff"><b><span id="font2">Afsender</b></span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("mailAfsender")%></span </td>
</tr>
<tr>
<td bgcolor="#ffffff"><b><span id="font2">Emne</b></span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("mailEmne")%></span </td>
</tr>
<tr>
<td bgcolor="#ffffff"><b><span id="font2">Dato</b></span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("mailDato")%></span </td>
</tr>
<tr>
<td bgcolor="#ffffff"><b><span id="font2">Besked</b></span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("mailBesked")%></span </td>
</tr>
</table>
<br>
| <a href="community.asp?mode=inbox">Indbakke</a>
| <a href="community.asp?mode=delete_email&mailid=<%=rs("mailid")%>">Slet</a>
| <a href="Community.asp?mode=ny_email">Ny email</a>
|
<% end if %>
<% if mode = "delete_email" then
'Tjecker om brugeren er logget ind
if session("brugernavn") = "" then
Response.Redirect("community.asp?mode=login")
end if
'Sletter email
Set rs = Conn.Execute("select * from mail where mailid = " & Request.QueryString("mailid"))
'Tjecker om mailen tilhører brugeren
if rs("mailModtager") = Session("brugernavn") then
conn.Execute("delete from mail where mailid = " & Request.QueryString("mailid") & "")
end if
Response.Redirect("community.asp?mode=inbox")
end if %>
<% if mode = "ny_email" then
'Tjecker om brugeren er logget ind
if session("brugernavn") = "" then
Response.Redirect("community.asp?mode=login")
end if
'Hvis brugeren har valgt og sende en email:
if Request("modtager") <> "" AND Request("emne") <> "" AND Request("besked") <> "" then
'Lægger værdierne ned i variabler
modtager = Request.Form("modtager")
emne = Server.HTMLEncode(Request.Form("emne"))
besked = Server.HTMLEncode(Request.Form("besked"))
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from mail"
rs.open sql, conn, 1, 3
rs.addnew
rs("mailmodtager") = modtager
rs("mailafsender") = Session("brugernavn")
rs("mailEmne") = emne
rs("mailbesked") = besked
rs("mailDato") = Now()
rs.update
rs.close
set rs = Nothing
Response.Redirect("community.asp?mode=inbox")
end if
%>
<span id="font2">Skriv ny email:<br>Alle felter skal udfyldes!</span><br>
<form method="post" action="community.asp?mode=ny_email">
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Modtager</span</b></td>
<td bordercolor="#ffffff"><select name="modtager">
<%
'Hiver alle brugerne ud i en select boks
set rs = Conn.Execute("select * from bruger")
Do until rs.eof
navn = rs("brugernavn")
%><option value="<%=navn%>"><%=navn%></option>
<% rs.movenext
loop
rs.close
set rs = nothing
%>
</select>
</td>
</tr>
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Emne</span</b></td>
<td bordercolor="#ffffff">
<input type="text" name="emne" size="20"></td>
</tr>
<tr>
<td bordercolor="#ffffff"><b><span id="font2">Besked</span</b></td>
<td bordercolor="#ffffff"><textarea name="besked" cols="25" rows="10"></textarea></td>
</tr>
<tr>
<td bordercolor="#ffffff"> </td>
<td bordercolor="#ffffff"><input type="submit" value="Send"></td>
</tr>
</table>
<% end if %>
<% if mode = "bruger_list" then
'Hiver alle brugeren ud:
Set rs = Conn.Execute("select * from bruger order by brugernavn")
%>
<span id="font2">Her er en komplet liste over alle brugere:<br></span><br>
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff" bgcolor="#ffffff"><span id="font2"><b>Brugernavn</b></span</td>
<td bordercolor="#ffffff" bgcolor="#ffffff"><span id="font2"><b>Alder</b></span</td>
</tr>
<% Do until rs.eof %>
<tr>
<td bordercolor="#ffffff"><span id="font2"><a href="community.asp?mode=profil&id=<%=rs("brugerid")%>"><%=rs("brugernavn")%></a></span </td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugeralder")%></span </td>
</tr>
<%
rs.movenext
loop
rs.close
set rs = nothing
%>
</table>
<% end if %>
<% if mode = "profil" then
Set rs = Conn.Execute("select * from bruger where brugerid = " & Request.QueryString("id"))
%>
<table border="0" bordercolor="#000000">
<tr>
<td bordercolor="#ffffff"><span id="font2">Brugernavn</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugernavn")%></span</span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Email</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugeremail")%></span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Hjemmeside</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugerhjemmeside")%></span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Alder</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=rs("brugeralder")%></span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">ICQ nummer</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=Rs("brugericq")%></span </td>
</tr>
<tr>
<td bordercolor="#ffffff"><span id="font2">Fri tekst</span</td>
<td bordercolor="#ffffff"><span id="font2"><%=Rs("brugertekst")%></span </td>
</tr>
</table>
<%
rs.close
set rs = nothing
end if %>
</td>
</tr>
</table>
