Kopier de enkelte kodestumper ud i hver sin fil og læg dem i samme folder på din webserver. Ret stien til databasen i setupConn.asp så den passer til din og prøv at køre det...
forside.asp:
------------
<%@ language="vbscript" codepage="1252" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>forside</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>Dette er forsiden hvor man kan logge på med sine brugeroplysninger og <a href="userinfo.asp">ændre sin profil</a>.</p>
</body>
</html>
så login.asp:
-------------
<%@ language="vbscript" codepage="1252" %>
<%
Server.Execute "setupConn.asp"
if Request.Form("Login") <> "" then
strConn = Session.Contents("ConnectionString")
strSQL = "SELECT ID FROM bruger WHERE Navn LIKE '" & Replace(cstr(Request.Form("Navn")),"'","''") & "' AND Password = '" & Replace(cstr(Request.Form("Password")),"'","''") & "'"
set objConn = Server.CreateObject("ADODB.Connection")
' Forbind til databasen
objConn.Open strConn
' Find brugeren
set objRs = objConn.Execute(strSQL)
' Hvis der var et resultat, så findes brugeren og login informationerne var korrekte!
if not objRs.EOF then
' Læg brugerens ID i en session-variabel så vi ved hver der er logget på
Session.Contents("userid") = cstr(objRs("ID"))
end if
' Oprydning!
objRs.Close
objConn.Close
set objRs = nothing
set objConn = nothing
' Naviger til den side som oprindelig blev forespurgt
Response.Redirect Request.ServerVariables("SCRIPT_NAME")
end if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>Login</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
Brugernavn: <input type="text" name="Navn"><br>
Adgangskode: <input type="password" name="Password"><br>
<input type="submit" name="Login" value="Log på">
</form>
</body>
</html>
og userinfo.asp:
----------------
<%@ language="vbscript" codepage="1252" %>
<%
if IsEmpty(Session.Contents("userid")) OR cstr(Session.Contents("userid") & "") = "" then
Server.Transfer "login.asp"
end if
Server.Execute "setupConn.asp"
strConn = Session.Contents("ConnectionString")
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConn
if cstr(Request.Form("Opdater")) <> "" then
SQLBeskrivelse = Replace(Request.Form("Beskrivelse"),"'","''")
if len(SQLBeskrivelse) > 255 then
SQLBeskrivelse = left(SQLBeskrivelse, 255)
end if
' Så skal vi igang med at opdatere brugerens data
strSQL = "UPDATE bruger SET"
strSQL = strSQL & " Navn='" & Replace(Request.Form("Navn"),"'","''") & "'"
strSQL = strSQL & ", [Password]='" & Replace(Request.Form("Password"),"'","''") & "'"
strSQL = strSQL & ", Email='" & Replace(Request.Form("Email"),"'","''") & "'"
strSQL = strSQL & ", Kategori='" & Request.Form("Kategori") & "'"
strSQL = strSQL & ", Beskrivelse='" & SQLBeskrivelse & "'"
strSQL = strSQL & " WHERE ID=" & Session.Contents("userid")
objConn.Execute strSQL
objConn.Close
set objConn = nothing
Response.Redirect "forside.asp"
end if
if cstr(Request.Form("Slet")) <> "" then
strSQL = "DELETE FROM bruger WHERE ID=" & Session.Contents("userid")
objConn.Execute strSQL
objConn.Close
set objConn = nothing
Session.Contents("userid") = Empty
Response.Redirect "deluser.asp"
end if
if cstr(Request.Form("Logaf")) <> "" then
Session.Contents("userid") = Empty
Session.Abandon
Response.Redirect "forside.asp"
end if
' Sæt SQL til indlæsning af brugeroplysninger op
strSQL = "SELECT * FROM bruger WHERE ID = " & Session.Contents("userid")
' Læs oplysningerne
set objRs = objConn.Execute(strSQL)
' Gem oplysningerne i lokale variable til brug i opbygningen af HTML
if not objRs.EOF then
Navn = cstr(objRs("Navn") & "")
Password = cstr(objRs("Password") & "")
Email = cstr(objRs("Email") & "")
Kategori = cstr(objRs("Kategori") & "")
Beskrivelse = cstr(objRs("Beskrivelse") & "")
end if
' Oprydning!
objRs.close
objConn.Close
set objRs = nothing
set objConn = nothing
' ===================================================================
' KATEGORIER:
' I dette eksempel benyttes et array af kategorier og kategorinøgler,
' men i et virkeligheden burde dette måske vedligeholdes i databasen
' i sin egen tabel. Princippet med at opbygge OPTIONS-listen kan
' stadig benyttes selvom man skulle vælge at lægge værdierne i databasen.
' ===================================================================
' Opsæt kategorier med tekst hhv. nøgle skiftevis, altså formatet er:
' tekst, nøgle, tekst, nøgle... osv.
' =============== !!! VIGTIGT !!! ===================================
' Det er vigtigt at der altid er en nøgle (gerne en tom streng) til hver
' tekst, da indekseringen ellers går itu.
' =============== !!! VIGTIGT !!! ===================================
strKategorier = "[Vælg kategori],,Kategori 1,Kategori 1,Kategori 2,Kategori 2,Kategori 3,Kategori 3,Kategori 4,Kategori 4"
' Split strengen op så kategorierne kommer over i et array med tekst og nøgle skiftevis
arrKategorier = Split(strKategorier, ",")
' Opbyg HTML-streng som danner OPTIONS med kategorierne
Kategorier = vbCrLf
for idx = 0 to ((ubound(arrKategorier) + 1) / 2) - 1
strKategoriText = arrKategorier(idx * 2)
strKategoriValue = arrKategorier(idx * 2 + 1)
Kategorier = Kategorier & "<option value=""" & strKategoriValue & """"
if strKategoriValue = Kategori then
Kategorier = Kategorier & " SELECTED"
end if
Kategorier = Kategorier & ">" & strKategoriText & vbCrLf
next
' Så kan opbygningen af formularen begynde!
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>Vedligehold brugeroplysninger</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.label { float:left; width:120px; }
</style>
</head>
<body>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<span class="label">Brugernavn:</span><input type="text" maxlength="255" name="Navn" value="<%=Navn%>"><br>
<span class="label">Adgangskode:</span><input type="password" maxlength=50" name="Password" value="<%=Password%>"><br>
<span class="label">Email:</span><input type="text" maxlength=255" name="Email" value="<%=Email%>"><br>
<span class="label">Kategori:</span><select name="Kategori"><%=Kategorier%></select><br>
<span class="label">Beskrivelse:</span><textarea name="Beskrivelse" cols="50" rows="5"><%=Beskrivelse%></textarea><br>
<span class="label"> </span>
<input type="submit" name="Opdater" value="Opdater">
<input type="submit" name="Slet" value="Slet">
<input type="submit" name="Logaf" value="Log af"><br><br>
</form>
</body>
</html>
deluser.asp:
------------
<%@ language="vbscript" codepage="1252" %>
<%
if IsEmpty(Session.Contents("userid")) OR cstr(Session.Contents("userid") & "") = "" then
Server.Transfer "login.asp"
end if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>Brugeren er slettet</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>Din brugerprofil er nu slettet fra vores database.</p>
<p>Hvis du ønsker at oprette en ny, kan du gøre det på siden <a href="#">registrering af ny bruger</a>.</p>
</body>
</html>
og sidst men ikke mindst setupConn.asp:
---------------------------------------
<%
function MapPathX(path)
if left(path,1) = "/" then
root = Server.MapPath("/")
path = right(path,len(path)-1)
else
root = Server.MapPath(".")
end if
vfolders = split(path, "/")
for each folder in vfolders
if folder = ".." then
root = left(root, instrrev(root, "\") - 1)
else
root = root & "\" & folder
end if
next
MapPathX = root
end function
' Test om MapPath kan gå udenfor roden af webserveren
if Server.MapPath("/") = Server.MapPath("/..") then
' Hvis ikke så brug custom-funktionen ovenfor (MapPathX)
dbPath = MapPathX("/../data/db1.mdb")
else
' ellers brug den indbyggede MapPath
dbPath = Server.MapPath("/../data/db1.mdb")
end if
' Gem connectionstring i session, så man kan komme til den
' andre steder for denne bruger...
Session.Contents("ConnectionString") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
%>
------------------------------------------
Databasen ser således ud:
bruger =
ID [Autonumber - unique]
+ Navn [text - 255 - requied - zerolength allowed]
+ Password [text - 50 - required - zerolength allowed]
+ Email [text - 255 - required - zerolength allowed]
+ Kategori [text - 50 - required - zerolength allowed]
+ Beskrivelse [text - 255 - required - zerolength allowed]