php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.05.2006, 19:29  
Gast
 
Beiträge: n/a
Standard Textengabe auf unsinnige Eingabe prüfen

Hallo,

eine unsinnige Texteingabe erkennt man daran, dass meist mindestens drei oder nebeneinander auf der Tastatur angeordnete Buchstaben betätigt werden, also z.B. "asdsdfdffghhgjjhxcvcvb"

Wie könnte eine Funktion aussehen, die einen $text möglichst elegant auf das Vorkommen von "asd","sdf", "dfg", "fgh", "hgj", "jhk", "xcv", "cvb" prüft?

Vielen Dank für jede Hilfe!
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.05.2006, 19:34  
Gast
 
Beiträge: n/a
Standard

Wenn du das hinbekommst, möchte ich das Script haben. Nur so als Tipp, da könnten auch (korrekte) Abkürzungen im Text sein, und dann? Und was ist mit Wert?

Gruß
phpfan
 
Alt 24.05.2006, 19:37  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

PHP-Code:
<?php
$eingabe 
'asdf';

$gefunden FALSE;
$array = array('asd','sdf','...');
foreach (
$array as $wert)
{
    if (
strstr($wert$eingabe) !== FALSE)
    {
        
$gefunden TRUE;
    }
}

if (
$gefunden === TRUE)
{
    echo 
'unsinnige Eingabe';
}
?>
Aber von der Methode der Formularüberprüfung halte ich nichts!
Was is wenn der String in $array doch in einem Wort vorkommt oder so?
Wann schließte die User damit aus. Außerdem gibt der User dann halt
etwas anderes ein und da gibt ja genug Möglichkeiten.

*edit*

Mal was ganz anderes:

Zum Thema Performance. Ich hab grad keine Testumgebung da vlt hat ja einer von euch nen passenden Skript.
Was wohl schneller ist:
PHP-Code:
<?php
$string 
'd';
$status FALSE;
$array = array('a','b','c','d');
foreach (
$array as $wert)
{
    if (
strstr($wert$string) !== FALSE$status TRUE;
}
?>
oder
PHP-Code:
<?php
$string 
'd';
$status FALSE;
$array = array('a' => 'b','c' => 'd');
foreach (
$array as $wert1 => $wert2)
{
    if (
strstr($wert1$string) !== FALSE OR strstr($wert2$string) !== FALSE)
        
$status TRUE;
}
?>
Nur mal so rein theoretisch müsste ja die zweite Schleife halb so oft durchlaufen wie die Erste
Flor1an ist offline  
Alt 24.05.2006, 19:56  
Gast
 
Beiträge: n/a
Standard

Haha, geht alles viel kürzer. Hab mit schon was gebastelt:

PHP-Code:
<?php
if (eregi('asd|sdf|dfg|fgh|ghj|hjk|jkl|löä|xcv|cvb|vbn|bnm|wre|qwe|rtz|rty|uio|iop|dsa'$message)) {echo"Message scheint Unsinn zu sein";}
?>
Was meinen die Profis dazu? Ist das sauber so?

OK, Abkürzungen könnte man damit fälschlicherweise erwischen, aber das kann man durch sorgfältige Wahl der Buchstabenfolgen einigermassen ausschliessen. Das oben ist nur eine schnelles Beispiel.

Jetzt fehlt mir nur noch eine Funktion, die meckert, wenn ein Zeichen mehr als 3x hintereinander kommt, also "kkkkk".

Kann wer helfen?
 
Alt 24.05.2006, 20:05  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Von sowas halte ich garnichts ... was ist wenn jemand wild auf die Tastatur drückt? Dann bringt dir das garnix mehr! Du sperrst mehr User aus als dass du Spam vermeidest!
Flor1an ist offline  
Alt 25.05.2006, 01:38  
Gast
 
Beiträge: n/a
Standard

@Razor: Tja, das ist doch genau das, was ich ausfiltern will. Wildes Herumgedrücke auf der Tastatur!
 
Alt 25.05.2006, 02:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Überleg dir was anderes. Die besten Algorithmen sind die, die man selbst beim Offenlegen des Quellcodes nicht umgehen kann. Und dieser hier wäre ein Witz.

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

filtert das dein Programm?

Was ist mit
Zitat:
Dies ist ein Blindtext. Blindtexte sind zumeist weder informativ noch interessant, sondern ausgesprochen langweilig. So auch dieser.
Verschwende deine Zeit nicht mit solchen Probleme, sonst hat die Nervensäge schon gewonnen.
Zergling-new ist offline  
Alt 25.05.2006, 02:29  
Neuer Benutzer
 
Registriert seit: 12.05.2006
Beiträge: 17
bennylein
Standard

ich bin der Meinung sowas ist unsinnig. was machst denn mit zahlen ???
Außerdem gibt es mit Sicherheit einige Wörter die so ein Suchmuster enthalten... Und Namen sicher noch mehr.
bennylein ist offline  
Alt 25.05.2006, 13:46  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wenn ich beim erstmal die Nachricht lese "unsinnige eingabe blabla" dann tipp ich halt einfach "123nb08" ein und dann? Hab ich deine Sache auch überlistet! Ganz einfach, sowas ist unmöglich zu filtern, lass es lieber du vergraulst damit eher User die dann mal nen Wort haben wo "asd" drin vorkommt etc.
Flor1an ist offline  
Alt 25.05.2006, 14:52  
Gast
 
Beiträge: n/a
Standard

Also, eigentlich wollte ich hier gar nicht den Sinn oder Unsinn dieses Filters diskutiert haben, sondern vielmehr dessen Umsetzung.

Ihr müsst ihn doch gar nicht einsetzen. Ich teile Eure Argumente im allgmeinen uneingeschränkt, aber ich brauche den Filter jedoch für eine bestimmte Anwendung.

Und bezüglich "aaaaaaaaaaaaa" hatte ich ja gerade gefragt, ob man das auch elegant detektieren kann, also einen String in dem >3x das gleiche Zeichen hintereinander kommt.

Hat jemand eine Idee?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei richtiger Eingabe Daten an nächste Seite versenden xx_heidi_xx PHP Tipps 2008 49 27.05.2008 14:56
preg_match zur eingabe Überprüfung pepepro PHP Tipps 2006 9 16.05.2006 19:28
CLI, Command line Eingabe während der Laufzeit DerDesian PHP Tipps 2007 6 30.11.2005 14:10
URL Eingabe in Formular-Eingabefeld PHP Tipps 2005-2 3 22.09.2005 11:02
2 fensterladen 1 dauerladen 1 davon nur nach eingabe laden PHP-Fortgeschrittene 9 08.06.2005 18:53
[Erledigt] Eingabe in Textfeld A, Ausgabe Textfeld B wie? HTML, Usability und Barrierefreiheit 2 01.06.2005 18:09
Acces Denied bei falscher Eingabe PHP Tipps 2005 7 09.03.2005 09:21
Eingabe "sofort antworten" Off-Topic Diskussionen 6 25.01.2005 16:17
Überprüfung ob Eingabe = Nummer, etc.. PHP Tipps 2004-2 2 21.11.2004 19:35
[Erledigt] Select Feld - Eingabe merken ?!? PHP-Fortgeschrittene 4 18.11.2004 12:30
[Erledigt] Formular auf richtige Eingabe prüfen PHP Tipps 2004-2 1 16.11.2004 13:56
datum eingabe mittels formular + 6wochen PHP Tipps 2004 6 17.10.2004 20:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php nachprüfen wie oft etwas hintereinander kommt, cvb sdf asd bke, textengabe, php gleiche buchstaben hintereinander, php auf texteingabe kontrollieren, php texteingaben prüfen, php tastatureingabe prüfen, preg_match gleiche zeichen hintereinander, texte mit unsinnigen buchstaben, php mehrere gleiche zeichen hintereinande rausfiltern

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.