Script - Datenbank Wörter (gesucht)
Heike
- php
Moin Moin,
Ich weiss jetzt nicht ob jemand soetwas als Script schon hat.
Ich würde mir gerne für ein Captcha-Script eine Wörter-Datenbank anlegen, die 3 Spalten hat (IDNR, ANZAHLZEICHEN, WORT).
Das anlegen und einfügen der Wörter bzw. Daten in die DB, ist nicht das Problem. Die Kontrolle, ob es ein Wort in der Datenbank schon steht
ist auch nicht das Problem. Die Umsetzung für mich allerdings schon, da ich noch nicht PHP-Fit bin.
Eine Frage nach einem fertigen Script ist immer nicht so gerne gesehen dennoch versuch ich mal mein Glück.
Wie stelle ich mir das vor?
Also ich nehme eine Textarea und kopiere dort einen Text (deutschen) ein.
Jetzt die aufgaben des Scriptes:
Filterung 1:
1. Wörter die ein ä, ö ü oder ß beinhalten, da werdendie Buchstaben in ae oe oder ue und 'ß' in 'ss' umgewandelt. (für = fuer)
2. Zeichenketten (Wörter) mit einem Bindestrich, Unterstrich weden ignoriert. (igno: Bau-Haus | Bau - Haus = 2 Worte).
3. auch Wörter mit Ziffern sollten ignoriert werden (Beispiel: 2stellig).
Ebenfalls igno wörter wie zum Beispiel René.
eventuell wenn möglich nach der Filterung 1 die Filterung 2:
Das alle wörter die einen Buchstaben enthalten, der nicht in der Maske vorhanden ist sollten auch ignoriert werden.
Maske (abcdefghijklmnopqrstuvwxyz) .... also alle Buchstaben (da das wort in kleinbuchstaben gespeichert werden soll)
wenn dann ein Wort gefunden wurde beginnt für mich der leichtere Teil:
1. schau in der Datenbank ob Wort schon vorhanden ist, wenn ja mach mit dem nächsten Wort weiter, wenn nein dann
2. eintragen.
Ich hoffe das ich nichts vergessen habe und eine oder einer sowas eventuell schon hat ;)
Liebe Grüße zum Sonntag.
Hallo Heike
Hier wird wohl gleich einer den Einwand bringen, das Captchas nicht barrierefrei sind. Was ja auch stimmt. Aber nun zu deinem Problem, für welches es natürlich wieder viele verschiedene Möglichkeiten gibt:
A)
Du kanns bsp. das korrekte Lösungswort rückwärts in einem Input-Hidden-Feld mit dem Html-Quellcode ausgeben. Beim absenden des Formulars drehst du das Input-Hidden-Feld in die richtige Richtung und vergleichst es, mit der vom Client gemachten Eingabe. Fertig.
Musst du erst in einer Datei die möglichen "Passwörter" auslesen, kostet das Resourcen oder "Perfomance" - wie das auf "Neudeutsch" heisst.
B)
Mach doch was Kreatives. Ich hab bsp. den Robotspam so gelöst.
Ich hab auch schon Rechenaufgaben gesehen - bis hin zum Quiz-Spiel (damit der Client sich vorkommt, wie bei "Wer wird Millionär" *g*).
Captchas sind je nach Verzerrungsgrad wirklich schwer zu erkennen - selbst für gesunde Augen. Des weiteren soll es Bots geben, die einfache Captchas auslesen können sollen - wird zumindest behauptet.
Gruss HP-User
Nachtrag
Ich hab ja nur halb geantwortet:
legst dir keine einzelnen Worte an, sondern einen Ordner mit Dateien. Die Dateien sind jpegs oder pngs. Diese benennst du so, dass der Inhalt des captchas nicht hieraus hervorgeht.
Ordner:
-captcha01.jpg
-captcha02.jpg
-captcha03.jpg
-captcha04.jpg
Du musst über eine Bezugsliste den Dateinamen des Captcha mit dem Inhalt vergleichen können. Bsp.:
-captcha01.jpg = XyZ123AbC
-captcha02.jpg = HgF548SeD
usw...
Und dann die Geschichte mit dem Input Hidden.
Natürlich könntest du dir auch Captcha zusammenbauen. Ob der Aufwand aber lohnt?
Gruss HP-User
Halli Hallo,
das mag alles richtig sein nur ist es nicht das was ich suchte.
Ein Script suchte ich und hab mir jetzt eins "1/2" zusammengestellt. Dachte nur das es sowas schon in der Art gibt. Danke aber für die Tipps und genannten Seitenvorschläge ;)
Werde mein PHP Script zu gegebener Zeit mal hier posten.
Gruß heike
Mach doch was Kreatives. Ich hab bsp. den Robotspam so gelöst.
Hab ich mir grad angesehen :-)
Ist es Absicht dass die Box gescrollt werden muss? Macht einen komischen Eindruck, vor allem da auf der Seite ja sowieso noch Platz nach unten ist.
Tach!
Ich würde mir gerne für ein Captcha-Script eine Wörter-Datenbank anlegen, die 3 Spalten hat (IDNR, ANZAHLZEICHEN, WORT).
Was gefällt dir denn an den zu findenden Wörter-Listen nicht?
wenn dann ein Wort gefunden wurde beginnt für mich der leichtere Teil:
- schau in der Datenbank ob Wort schon vorhanden ist, wenn ja mach mit dem nächsten Wort weiter, wenn nein dann
- eintragen.
Man lege einen Unique-Index an und trage einfach nur ein. Wenn das Wort schon enthalten ist, gibt es eine Unique-Constraint-Verletzung, auf die du reagieren kannst oder es in dem Fall auch lassen kannst.
dedlfix.