27.02.2008, 17:46
Hallo,
in meinem MyBB-Forum ist es nicht möglich nach Ausdrücken zu suchen, die die Pipe beinhalten, also dieses Zeichen: |
So könnt ihr das auch selbst testen: 500|500
Mal sehen ob ihr 500|500 über die Suche findet. In meinem Forum funktioniert es leider nicht, wird aber benötigt. Und auch hier, in diesem Forum, erhalte ich die Meldung: "Sorry, aber nach deinen Angaben wurden keine Ergebnisse gefunden. Bitte ändere deine Suchbegriffe und versuche es erneut."
Damit man es besser (vollständiger) testen kann habe ich 500|500 auch in den Titel dieses Themas integriert.
EDIT
Ich habe auch den "Fehler" gefunden:
Ist wahrscheinlich eine Sicherheitsfunktion (da "clean_keywords"), dennoch brauche ich die Suche nach "|". Ich schau mal ob es da eine Möglichkeit gibt. Das soll euch aber nicht am Antworten hindern.
EDIT2
Also, wie es aussieht, verwendet die MyBB-Suche "nur" die LIKE-Direktive von SQL. Die kennt nur zwei Spezialzeichen, und zwar "%" (matcht beliebig viele Zeichen, auch gar keine Zeichen) und "_" (matcht genau ein beliebiges Zeichen). Die Funktionen, die die Suchwörter "entschärfen" (cleanen), entfernen somit, m.E., viel zu viele Zeichen. Es werden viele Zeichen entfernt/maskiert, die für die LIKE-Direktive gar keine besondere Bedeutung haben.
Zumindest ist das mein erster Eindruck nach paar Minuten Recherche.
Informationen zur LIKE-Direktive: http://dev.mysql.com/doc/refman/5.0/en/s...tions.html
MfG, bmaker
in meinem MyBB-Forum ist es nicht möglich nach Ausdrücken zu suchen, die die Pipe beinhalten, also dieses Zeichen: |
So könnt ihr das auch selbst testen: 500|500
Mal sehen ob ihr 500|500 über die Suche findet. In meinem Forum funktioniert es leider nicht, wird aber benötigt. Und auch hier, in diesem Forum, erhalte ich die Meldung: "Sorry, aber nach deinen Angaben wurden keine Ergebnisse gefunden. Bitte ändere deine Suchbegriffe und versuche es erneut."
Damit man es besser (vollständiger) testen kann habe ich 500|500 auch in den Titel dieses Themas integriert.
EDIT
Ich habe auch den "Fehler" gefunden:
PHP-Code:
#/inc/functions_search.php:170 in Funktion clean_keywords($keywords)
$keywords = preg_replace("#([\[\]\|\.\,:'])#s", " ", $keywords);
# ähnlicher Code auch in Zeile 190!
Ist wahrscheinlich eine Sicherheitsfunktion (da "clean_keywords"), dennoch brauche ich die Suche nach "|". Ich schau mal ob es da eine Möglichkeit gibt. Das soll euch aber nicht am Antworten hindern.
EDIT2
Also, wie es aussieht, verwendet die MyBB-Suche "nur" die LIKE-Direktive von SQL. Die kennt nur zwei Spezialzeichen, und zwar "%" (matcht beliebig viele Zeichen, auch gar keine Zeichen) und "_" (matcht genau ein beliebiges Zeichen). Die Funktionen, die die Suchwörter "entschärfen" (cleanen), entfernen somit, m.E., viel zu viele Zeichen. Es werden viele Zeichen entfernt/maskiert, die für die LIKE-Direktive gar keine besondere Bedeutung haben.
Zumindest ist das mein erster Eindruck nach paar Minuten Recherche.
Informationen zur LIKE-Direktive: http://dev.mysql.com/doc/refman/5.0/en/s...tions.html
MfG, bmaker