Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Floodschutz & Co

Empfohlene Antworten

Veröffentlicht

Habe ein PHP Chat und möschte einen sogen. Floodschutz einbauen.... hab aber nicht den geringsten Ansatz wie ich so einen aufbauen bzw. programmieren könnte...

Die Bedingungen: Der Chatter soll max x sätze in einem zeitintervall von x sekunden absenden.

Die sätze werden in einer MYSQL Tabelle gespeichert!

Eigabe erfolgt über ein Textfeld.

Hoffe ich bekomme ein Paar Tipps und Anregungen :D

Ach ja... wenn einer vieleicht noch weiß wie man einen Chatbot schreiben kann (erstmal das dieser sich zum chat verbindet) oder wo man einen herbekommen kann ???

Kann erstmal nen einfacher sein... sollte sich nur mal mit dem chat verbinden können (also quasi einloggen).

Hoffe auf zahlreiche Antorten ;)

Also zum ersten Teil wüsste ich wie:

lege die Eintragszeit mit in der Datenbank ab und mach dann einen Vergleich zur aktuellen Zeit.

Also besser:

Einträge des Users zählen, die im Zeitraum aktuelle Zeit - Intervall liegen.

Aber sollte das in einem Chat wirklich sinnvoll sein ?

Nu ja... sag mir warum dies nicht sinvoll sein soll ???

Sagen wir es befinden sich 3 chatter im raum. 2 unterhalten sich , der 3 fängt an 1000 mal hintereinander die zahl 1 einzutippen. Kein Admin da ???!!! Der floodschutz verhindert dies. Mann könnte ja noch eine zusatzfunktion einbauen wo den flooder für eine gewisse zeit kenbelt ??!!

Sag mir warum du dies nicht sinnvoll hälst :rolleyes:

Na gut, das hängt dann wahrscheinlich auch von deiner Begrenzung ab.

Aber mich nerven hier manchmal schon die 60 Sekunden pro Foreneintrag.

Aber eine Antwort auf den zweiten teil würde mich hier auch mal interessieren, zudem mein Chat ohne externes Protokoll läuft und u.U. 'ne Menge Traffic produziert.

Ja zum zweiten teil...... sagen wir mal so....... ich hab nen externen java bot. is halt für javachats gedacht.... isn alter von nem cassiopia chat. aber da muss man so sachen wie port angeben und .... mein php chat läuft über keinen port :confused:

Weiss ja ned ob man den doch verwenden kann .... vieleicht bin ich einfach nur zu blöd :P

einen chat in php zu machen finde ich schon vom ansatz her eine schlechte idee.

für sowas sollte man applets o.ä. verwenden.

ist ja kein wunder das du extrem viel traffic hast, wenn du bei jedem geschriebenen satz deine seite reloaden musst!

zum thema:

einfach in die db mit eintragen wann der datensatz eingefügt wurde.

prüfen kannst du dann mit *PSEUDOCODE*

if ( $timenow - $timelastpost > $timebetweenposts) {

=> insert text in db

}

Original geschrieben von kills

einen chat in php zu machen finde ich schon vom ansatz her eine schlechte idee.

für sowas sollte man applets o.ä. verwenden.

ist ja kein wunder das du extrem viel traffic hast, wenn du bei jedem geschriebenen satz deine seite reloaden musst!

zum thema:

einfach in die db mit eintragen wann der datensatz eingefügt wurde.

prüfen kannst du dann mit *PSEUDOCODE*

if ( $timenow - $timelastpost > $timebetweenposts) {

=> insert text in db

}

Also ersten habe ich das ja bereits gesagt, zweitens wird nicht die gesamte Seite jedesmal neu geladen (Beispiel ) und drittens hast du die Frage anscheinend nicht richtig gelesen.

:rolleyes:

Hey leute..... ich finde einen chat in php gut... ok es entsteht viel traffic aber dafür läuft dieser auf herkömmlichen webspace was ein java chat nicht macht wegen laufzeitbeschränkung.

Ich vermute mal, du arbeitest mit PHP und MySQL.

Dann wäre die sinnigste Lösung (die kills ja schon angesprochen hat), sich zu dem Chateintrag den User und den Timestamp mit einzutragen.

Dann bei einem neuen Eintrag einfach eine Abfrage einbauen, wieviele Posts der User im Zeitintervall gemacht hat.

Pseudocode:


anfanginterval = jetzt - 30_sekunden;

SELECT COUNT(*) as anzahl FROM TABELLE where user='XYZ' and timestamp between anfanginterval AND jetzt;

if anzahl < 10

  trage_post_ein

else

  gebe_meldung_aus

endif

Das Knebeln könntest Du lösen, indem Du in eine Usertabelle einen Timestamp "geknebelt" mit einbaust. Wenn der User dann "gefloddet" hat fügst Du den Timestamp ein und fragst bei jedem post ab, ob und wie lange der user schon geknebelt ist: Pseudocode, die zweite:

select geknebelt from benutzer where name='XYZ'

if jetzt-geknebelt >= 30_Minuten

  fuehre_die_flood_pruefung_von_oben_aus

else

  gebe_meldung_aus_dass_der_user_geknebelt_ist

endif

Vielleicht hilft's ja!

ICQ

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.