Kritischer Bug in Views Filter
am 11.08.2007 - 16:52 Uhr in
Hallo, habe es nun einigemale bei .org versucht. Anscheindend interessiert das niemand, was mir unverständlich erscheint.
Ich habe jetzt auf mehreren Server das gleiche Versucht, ich bin mir (99%) sicher, dass es nicht an mir liegt sondern an Drupal. (5.2)
Wenn man ein Textfeld erstellt, seih es mit CCK oder als Profilfeld und erstellt zu diesem Feld anschließend ein exposed Filter und versucht nach "b" zu suchen. erscheint folgender Fehler
* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'node'%'))' at line 1 query: SELECT count( DISTINCT(node.nid)) FROM node node INNER JOIN usernode usernode ON node.nid = usernode.nid LEFT JOIN users usernode_users ON usernode.uid = usernode_users.uid LEFT JOIN content_type_prefirmen node_data_field_vorige_firmen ON node.vid = node_data_field_vorige_firmen.vid WHERE (node.type IN ('usernode')) AND (usernode_users.status = '1') AND (UPPER(node_data_field_vorige_firmen.field_vorige_firmen_value) NOT LIKE UPPER(''node'%')) in database.mysqli.inc on line 151.
* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'node'%')) LIMIT 0, 10' at line 1 query: SELECT DISTINCT(node.nid) FROM node node INNER JOIN usernode usernode ON node.nid = usernode.nid LEFT JOIN users usernode_users ON usernode.uid = usernode_users.uid LEFT JOIN content_type_prefirmen node_data_field_vorige_firmen ON node.vid = node_data_field_vorige_firmen.vid WHERE (node.type IN ('usernode')) AND (usernode_users.status = '1') AND (UPPER(node_data_field_vorige_firmen.field_vorige_firmen_value) NOT LIKE UPPER(''node'%')) LIMIT 0, 10 in database.mysqli.inc on line 151.
sprich drupal frisst das "b" einfach auf
bei eingabe von zwei b´s erscheint dieser fehler:
* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'node'b%'))' at line 1 query: SELECT count( DISTINCT(node.nid)) FROM node node INNER JOIN usernode usernode ON node.nid = usernode.nid LEFT JOIN users usernode_users ON usernode.uid = usernode_users.uid LEFT JOIN content_type_prefirmen node_data_field_vorige_firmen ON node.vid = node_data_field_vorige_firmen.vid WHERE (node.type IN ('usernode')) AND (usernode_users.status = '1') AND (UPPER(node_data_field_vorige_firmen.field_vorige_firmen_value) NOT LIKE UPPER(''node'b%')) in database.mysqli.inc on line 151.
* user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'node'b%')) LIMIT 0, 10' at line 1 query: SELECT DISTINCT(node.nid) FROM node node INNER JOIN usernode usernode ON node.nid = usernode.nid LEFT JOIN users usernode_users ON usernode.uid = usernode_users.uid LEFT JOIN content_type_prefirmen node_data_field_vorige_firmen ON node.vid = node_data_field_vorige_firmen.vid WHERE (node.type IN ('usernode')) AND (usernode_users.status = '1') AND (UPPER(node_data_field_vorige_firmen.field_vorige_firmen_value) NOT LIKE UPPER(''node'b%')) LIMIT 0, 10 in database.mysqli.inc on line 151.
Ein "b" erscheint in der Abfrage.
Ich habe a-z, A-Z und 1-9 bis jetzt versucht, der fehler erscheint nur bei einem kleinen "b". Total Krass oder?
Ich dreh echt langsam durch, ich kann doch meine Seite nicht mit so einem dummen Fehler online stellen.
Folgende Operatoren funktionieren:
is equal to
starts with
Folgende Operatoren funktionieren nicht:
contains
cntains any word
contains all words
ends with
does not contain
Gruß
Lausch
- Anmelden oder Registrieren um Kommentare zu schreiben
LIKE-Suche
am 19.08.2007 - 23:14 Uhr
Ich kann das Problem bestätigen. Es tritt immer auf, wenn ein 'b' am Anfang des Suchbegriffs steht. Bei der LIKE-Suche wird der Begriff durch %-Zeichen eingerahmt, es steht dann also %birgendwas% da. %b wird dann durch 'node' ersetzt.. Anscheinend so'ne Query-Ersetzungssache. Ziemlich kritisch. Kanns vielleicht in bestimmten Situationen sogar Einschleusen von Code ermöglichen?
Hier wurde es schon diskutiert mit Lösungsvorschlägen: http://drupal.org/node/165611
bei
am 20.08.2007 - 01:10 Uhr
bei http://drupal.org/node/165611#comment-288705 gibst die Losung.
Ich habe das jetzt ewig hin und her diskutiert und durchprobiert und es scheint alles zu funktionieren.
Ich finde es erstaunlich, das es nur bei "b" eintritt. des weiteren finde ich es ein Hammer, dass dieses Thema so wenig aufsehen erregt.
Unser Patch wurde noch nichtmal in Views intrigiert.
Gruß
Lausch
Lausch wrote: Unser Patch
am 20.08.2007 - 08:32 Uhr
Unser Patch wurde noch nichtmal in Views intrigiert.
Ganz einfach deshalb, weil es kein Patch ist ;)
Geh bitte davon aus, daß die auch noch einen Tagesjob haben um Geld für ihren Lebensunterhalt zu verdienen.
Wie man Patches erstellt, ist ausführlich auf Drupal.org in den Handbüchern [1] beschrieben, wenn es dabei Probleme gibt, gerne Rückfragen.
vg
[1] http://drupal.org/patch/create
--
sanduhrs · Stefan Auditor · Drupalcenter
---------------------------------------------------------------------
http://erdfisch.de · http://audiens.de · http://drupal.org/user/28074
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
na, so meinte ich es nicht
am 20.08.2007 - 23:48 Uhr
na, so meinte ich es nicht :-)
ich denke views und cck sind "die" Module die sozusagen schon fast zu jeder drupal installation gehören. und das man sich da um sonen Bug nicht wirklich kümmert, hat mich in erstaunen versetzt.
Gruß
Lausch