[功能改进]防止提交重复评论内容

http://www.cnblogs.com/dudu/archive/2005/04/19/140872.html

看了上边的这篇文章,自已写了一个,实现了该功能.

<%@ Page Language="vb" Debug="true" ValidateRequest="false"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">
    
Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/kk.mdb"
    Dim strHashedNews As String   
    
Dim myConnection as New OleDbConnection (strConn)

    
Sub Page_Load(Src As Object, E As EventArgs)
        
If Not (IsPostBack)
            BindGrid()
        
End If
    
End Sub


    
Sub BindGrid()
        
Dim DS As DataSet
        
Dim MyCommand As OleDbDataAdapter
        MyCommand 
= new OleDbDataAdapter("SELECT * FROM info ORDER BY id Desc", MyConnection)
        DS 
= new DataSet()
        MyCommand.Fill(DS, 
"table1")
        MyDataGrid.DataSource
=DS.Tables("table1").DefaultView
        MyDataGrid.DataBind()
    
End Sub

 
Sub Button1_Click(sender As Object, e As EventArgs)
    AddtbxNewsHashCookie()
    
If Request.Cookies("abc").value <> strHashedNews Then
       AddNews()
    
Else
       Response.
Write("<script for=window event=onload>window.alert('Wrong.');</" & "script>")
    
End If
End Sub


Sub AddtbxNewsHashCookie()
    strHashedNews 
= FormsAuthentication.HashPasswordForStoringInConfigFile(tbxNews.Text, "sha1"
    Response.
Write(strHashedNews)   

    
Dim myCookie as HttpCookie = new HttpCookie("abc")
    myCookie.Value 
= strHashedNews
    
'Set the cookie expiration date.
    myCookie.Expires = now.AddMinutes(60)    
    
'Add the cookie.
    Response.Cookies.Add(myCookie)
End Sub


Sub AddNews()
    
Try
       
Dim MyCommandAdd As OleDbCommand
       
Dim InsertCmd As String = "INSERT INTO info (news) values (@news)"
       MyCommandAdd = New OleDbCommand(InsertCmd, myConnection)
       MyCommandAdd.parameters.add(
"@news",tbxNews.Text)
       MyCommandAdd.Connection.Open()
       MyCommandAdd.ExecuteNonQuery()
       MyCommandAdd.Connection.Close()
       BindGrid()
       tbxNews.Text
=""
    Catch
       Response.
Write("<script for=window event=onload>window.alert('Wrong.');</" & "script>")
   
End Try
End Sub

</script>

<form runat="server" ID="editDataGrid">
<asp:TextBox id="tbxNews" runat="server" textmode="Multiline" columns="70" rows="15"/><BR>
<asp:Button id="Button1" Text="Add" OnClick="Button1_Click" runat="server"/>
<ASP:DataGrid id="MyDataGrid" runat="server" Width="200" AutoGenerateColumns="true">
</ASP:DataGrid>
</form>