Ok.. Her er hvordan databsen skal se.. Jeg har haft uvendtet store problemmer med min egen maskine derfor får du ført noget nu :(
tabellen skal heddde: users kolonner i tabellen...: ID : autonummer username : text userpassword : text email : text
Denne kode skal ligge i filen opret.asp:
<HTML> <head></head> <body> <center> <% function fixString(strInput) if len(strInput) > 0 then outString = replace(strInput,"'","") fixString = outString else fixString = strInput end if end function
if Request.ServerVariables("REQUEST_METHOD") = "POST" then Set Conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.RecordSet")
err = 0 'Antager der ingen fejl er. if len(brugernavn) = 0 then err = 1 Response.Write "Ingen brugernavn angivet prøv igen.<br>" end if if len(password) = 0 then err = 1 Response.Write "Ingen password angivet prøv igen.<br>" end if if InStr(email,"@") = 0 or InStr(email,".") = 0 or len(email) < 6 then err = 1 Response.Write "Ingen email adresse angivet prøv igen.<br>" end if
if err = 0 then strSQL= "SELECT * FROM users WHERE username = '" & brugernavn & "' OR email = '" & email & "';" Set rs = Conn.Execute (strSQL)
Response.Write "Du er nu oprettet som bruger." else Response.Write "Brugernavnet er taget eller der er en bruger med samme email adresse, prøv et andet." end if end if 'Err = 0
rs.Close Conn.Close Set rs = Nothing Set Conn = Nothing else %> <center> <p>Velkommen til:</p><br> Her har du mulighed for at bliver oprette som bruger.<br><br> <table border="1"> <form method="post" action="opret.asp" name="newmember"> <tr><td colspan="2">Jeg vil gerne oprettes som bruger.</td> <tr><td>Brugernavn</td><td><input type="text" name="username"></td></tr> <tr><td>Password:</td><td><input type="password" name="password"></td></tr> <tr><td>Email:</td><td><input type="text" name="email"></td></tr> <tr><td colspan="2" align="center"><input type="submit" value="Tilmeld" name="Action"></td></tr> </form> </table> </center>
<html> <head> <title></title> </head> <body> <% function fixSring(strInput) if len(strInput) > 0 then outString = replace(strInput,"'","") fixSring = outString else fixSring = strInput end if end function
if Request.ServerVariables("REQUEST_METHOD") = "POST" then Set Conn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND userpassword='" & password & "');" Set rs = Conn.Execute (strSQL)
if not rs.EOF then if (username = rs("username")) then session("loginOK") = "jeps" session("username") = rs("username")
rs.Close Conn.Close Response.Redirect("" & session("username") & ".asp") end if end if
if session("loginOK") = "jeps" then session("loginOK") = "g" session("username") = "" end if rs.Close Conn.Close Set rs = Nothing Set Conn = Nothing end if %> <center> <p>Velkommen til:</p>
Lige 1 ting til. Når jeg nu opretter en bruger. mangler der jo den brugernavn.asp fil? kunne man lavet sådan at den lavet en standard.asp fil ? der hedder brugernavnet.asp når man bliver oprettet??
'Slet valgt bruger id = Request.QueryString("id") if id <> "" AND isNumeric(id) then strSQL = "DELETE FROM users WHERE ID = " & id Conn.Execute(strSQL) end if
strSQL= "SELECT * FROM users" Set rs = Conn.Execute (strSQL)
Response.Write "<table>" if (rs.EOF AND rs.BOF) then Response.Write "Ingen bruger i databasen lige nu!!" else Response.Write "<tr><td>Brugernavn</td><td>slet</td></tr>" do while not rs.EOF Response.Write "<tr>" Response.Write "<td>" & rs("username") & "</td>" Response.Write "<td><a href=?id=" & rs("id") & ">slet</a></td>" Response.Write "</tr>" rs.MoveNext loop end if Response.Write "</table>"
rs.Close Conn.Close Set rs = Nothing Set Conn = Nothing %> </center> </body> </HTML>
for at oprtte filen... i filden opret.asp skal der indføres nogle linier efter denne linie:
Response.Write "Du er nu oprettet som bruger."
Der skal tilføjes disse 4:
Set fso = Server.CreateObject("Scripting.FileSystemObject") Set file = fso.CreateTextFile(Server.MapPath(brugernavn & ".asp"),true) Set file = Nothing Set fso = Nothing
If Request.Form("Gem") <> "" Then strError = "" strNavn = Trim(Request.Form("Navn")) strEmail = Trim(Request.Form("Email")) strKommentar = Trim(Request.Form("Kommentar")) If Len(strNavn) = 0 Then strError = "<li>Du skal skrive dit navn!</li>" ElseIf validateEmail(strEmail) = False Then strError = "<li>Du skal skrive en gyldig e-mail adresse!</li>" ElseIf Len(strKommentar) = 0 Then strError = "<li>Du skal skrive en kommentar!</li>" End If If Len(strError) = 0 Then Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM Guestbook WHERE (ID = 0)" rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic If (rs.BOF Or rs.EOF) Then rs.AddNew rs("Navn") = Server.HTMLEncode(strNavn) rs("Email") = Server.HTMLEncode(strEmail) rs("Kommentar") = Server.HTMLEncode(strKommentar) rs("Dato") = Now() rs.Update End If rs.Close Set rs = Nothing Else strError = "<p><ul><font color=#FFCC00>" & strError & "</font></ul></p>" strMode = "add" End If End If %>
<tr> <td width="100%"> <% Select Case strMode Case "add" %> <form method="POST" action="guestbook.asp"> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td valign="middle" align="left" colspan="2"><font face="verdana" size="2"><br>Indtast venligst oplysningerne i følgende felter:<strong> <%=strError%></td> </tr> <tr> <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">Navn</font></strong></td> <td valign="middle" align="left"><input type="text" name="Navn" size="20" value="<%=strNavn%>"></td> </tr> <tr> <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">E-mail</font></strong></td> <td valign="middle" align="left"><input type="text" name="Email" size="20" value="<%=strEmail%>"></td> </tr> <tr> <td valign="top" align="left"><div align="right"><p><strong><font face="verdana" size="2">Kommentar</font></strong></td> <td valign="middle" align="left"><textarea rows="3" name="Kommentar" cols="20"><%=strKommentar%></textarea></td> </tr> <tr> <td valign="middle" align="left" colspan="2"><br> <input type="submit" value="Gem" name="Gem"> <input type="button" value="Annuller" name="Annuller" onClick="java script:location.href='guestbook.asp'"></td> </tr> </table> </form> <% Case Else strAddLine = "<p><img src=add.jpg width=16 height=16> <a href=mailto:daniel-j@oncable.dk><strong><font face=verdana size=2>Daniel Jespersen</font></strong></a></p>" Response.Write strAddLine strSQL = "SELECT * FROM Guestbook ORDER BY Dato DESC;" Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open tempConn Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then Response.Write "<table width=100% border=0 cellpadding=1 cellspacing=1>" Do While Not rs.EOF dtmDato = rs("Dato") dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime) Response.Write "<tr bgcolor=#ECE7C7><td width=""100%""><font face=verdana size=2>" & dtmDato & "</td></tr>" If Len(rs("Email")) > 0 Then Response.Write "<tr><td><font face=verdana size=2><strong><a href=mailto:" & rs("Email") & ">" & rs("Navn") & "</a> skriver:</strong></td></tr>" Else Response.Write "<tr><td><font face=verdana size=2><strong>" & rs("Navn") & " skriver:</strong></td></tr>" End If Response.Write "<tr><td><font face=verdana size=2>" & rs("Kommentar") & "<br> </td></tr>" rs.MoveNext Loop Response.Write "</table>" Else Response.Write "<p><font face=verdana size=2>Der er endnu ikke nogle der har skrevet i gæstebogen</font></p>" End If myConn.Close Set myConn = Nothing Response.Write strAddLine End Select %> </tr>
</tr> </table> </center></div>
<script language="VBScript" runat="Server"> Function validateEmail(strEmail) validateEmail = True If Len(strEmail) < 6 Then validateEmail = False End If If InStr(1, strEmail, "@", 1) < 2 Then validateEmail = False End If If InStr(1, strEmail, ".", 1) = 0 Then validateEmail = False End If pos = InStr(1, strEmail, "@", 1) If pos < 2 Then validateEmail = False Else pos = InStr(pos+1, strEmail, "@") If pos > 0 Then validateEmail = False End If End If End Function </script>
Jeps der skal file.WriteLine ind i alle linier. Du skal bare huske på at hver gang der et " i koden skal det laves om til 2 "" når kan skriver det til filen..:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.