Spamschutz

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets3646.

    Guten Abend liebe Paradise Community.

    Ich und mein Freund programmieren derzeit einen kleinen Chat.

    Nun kann man leider spammen, und möchten das Spammen verhinden.

    Stimmt der Code?

    Also, wenn man auf den Button klickt "Senden"
    führt es diesen Code aus.

    VB.NET-Quellcode

    1. spamschutz.Interval = 500 If MsgBox("Du kannst in 5 Sekunden wieder schreiben.") Then Else
    2. spamschutz.Interval = 400 If MsgBox("Du kannst in 4 Sekunden wieder schreiben.") Then
    3. Else
    4. spamschutz.Interval = 300 If MsgBox("Du kannst in 3 Sekunden wieder schreiben.") Then
    5. Else spamschutz.Interval = 200
    6. If MsgBox("Du kannst in 2 Sekunden wieder schreiben.") Then
    7. Else spamschutz.Interval = 100
    8. If MsgBox("Du kannst in 1 Sekunden wieder schreiben.") End If End If End If End If


    Wir bitten um Hilfe.

    Mit freundlichen Grüssen
    So fände ich es persönlich ganz ok, aber eine Spam-Sperre ist das ja nicht wirklich. Sag deinen Jungs lieber dass sie sich nicht wie Kindern benehmen sollen.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Chat
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim t As New Threading.Thread(AddressOf Enable)
    5. t.Start()
    6. End Sub
    7. Public Sub Enable()
    8. Me.Invoke(Sub() Button1.Enabled = False)
    9. Threading.Thread.Sleep(1000)
    10. Me.Invoke(Sub() Button1.Enabled = True)
    11. End Sub
    12. End Class
    Naja, also die Definition einer Schleife ist, dass sie bestimmte Aktionen mehrmals hintereinander ausführt. Eine Abfrage ist sowieso in jeder Schleife auch mit dabei, um die Anzahl der Wiederholungen zu regulieren. Insofern ist If eindeutig keine Schleife. Es als SChleife zu bezeichnen, nur weil es ein Codeblock ist macht keinen Sinn. Dann müsstest du ja auch Using und With als Schleife bezeichnen.
    Ich vermute das der Chat über nen TCP / UDP server geht und nicht über p2p oä.
    Ich würde den Spamschutz serverseitig implementieren, da deine Jungs den Client mit ILSpy dekompilieren und den spamschutz aufheben können.

    Grüße
    1. Nein, der Code stimmt nicht würde ich mal sagen, da du mit Timer.Interval den Zeitraum zwischen zwei Tick-Ereignissen abfragst, nicht die vergangene Zeit.
    2. Warum probierst du den Code nicht selber aus?
    3. Wie Robin_Micky schon sagte, solltest du es serverseitig lösen oder einfach lassen, selbst Facebook, Skype, etc. haben keinen wirklichen Spamschutz.
    4. Formatiere deinen Code bitte richtig.