26. august 2007 - 22:57Der er
13 kommentarer og 1 løsning
Indtast følgende for at oprette indlæg
Hej
Jeg har en lille asp gæstebog på min hjemmeside, problemet er at den bliver spammet ret kraftigt. Der er krav om at indtaste navn, emailadresse samt naturligvis overskrift og indhold.
Det jeg så gerne vil have tilføjet er en funktion at man skal indtaste indholdet af nedenstående "billede" (6 tal/bogstaver eller lignende) f.eks for at oprette posten som set på mange andre hjemmesider.
Hvordan gøres/programmeres dette lige? Kan ikke rigtig finde noget herinde eller på andre sider.
Jeg har dog løst en tilsvarende problem med at lave et sessionsobjekt med et tidsstempel når folk kommer ind på siden og så sammenligne tiden fra tidsstemplet med den aktuelle tid når et indlæg gemmes. Hvis der feks ikke er gået mere end et splitsekund så kan man roligt regne med at det er en bot der laver post'et til siden....
Hvor ligger jeg denne kode ind i min .asp fil ? bare oppe i starten eller ?
Jeg vil dog gerne stadig have et eksempel på den anden måde med billedet og den dynamisk kreerede tekst der skal indtastes inden indlæg oprettes. Håber det er muligt :-)
Tak for skrevne link, nu har jeg så registreret mig derinde og hvordan får jeg så det til at virke? Beklager hvis jeg virker dum men er ikke særlig hardcore til ASP og at indbygge den slags moduler.
Er det sådan at jeg kan få dig til at bygge det ind i min eksisterende .asp kode? så man skal indtaste det inden man kan oprette indlæg. Kan sende filer via email. Ellers må du sige hvad der skal til :-) Skal bare have det løst.
Er her slet ingen der kan hjælpe mig med mit lille problem ? er desværre ikke selv den store .asp haj men har virkelig brug for den ønskede funktion i min GB.
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=#FF0000>" & strError & "</font></ul></p>" strMode = "add" End If End If %> <html>
<tr> <td width="100%"> <% Select Case strMode Case "add" %> <form method="POST" action="default.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="40" 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="40" 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="40"><%=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='default.asp'"></td> </tr> </table> </form> <% Case Else strAddLine = "<p><img src=add.gif width=16 height=16> <a href=default.asp?mode=add a target=_self><strong><font face=verdana size=2>Opret indlæg!</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=#C0C0C0><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 ingen der har skrevet i gæstebogen</font></p>" End If myConn.Close Set myConn = Nothing Response.Write strAddLine End Select %> </tr>
</table> </center></div> </body> </html> <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> </table> </div>
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.