Modify

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#1982 closed Bug/Fehler (fixed)

Bug in autocomplete

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.6.0
Component: Shop Version: 2.0.5.1
Keywords: Cc:
Blocked By: Blocking:

Description

Für die Autocomplete-Suche funktioniert die Anwendung von Anführungsstrichen um feste Wortkombinationen zu verwenden nicht (wie in "Hilfe zur erweiterten Suche" beschrieben).
Beispiel: "Testartikel 1"

Das liegt daran, daß

  1. jQuery's serialize() Quotes escaped und urlencode-t und diese in der Funktion xtc_parse_search_string() somit nicht mehr erkannt werden und
  2. an folgendem Code in der /api/autocomplete/autocomplete.php:
    $queryString = xtc_db_input(trim(decode_utf8($_POST['queryString'])));
    

Der Code sollte analog zur advanced_search_result.php in File /includes/extra/default/listing_sql/99_advanced_search_result.php so lauten:

$queryString = stripslashes(trim(urldecode($_POST['queryString'])));

Das Sicherheits-Escapen für MySQL geschieht ja in der /includes/build_search_query.php mittels xtc_db_input().

Wenn das decode_utf8() im jetzigen Code Sinn machen sollte kann man das ja noch mit einfügen. Das sollte dann aber auch in der /includes/extra/default/listing_sql/99_advanced_search_result.php gemacht werden.

Gruß,
noRiddle

*NACHTRAG*
Sollte das so wie es jetzt ist gewünscht sein würde mich das sehr wundern, denn dann hätten die Suggestions aus dem Autocomplete eine nicht besonders aussagekräftige Funktion, da eine Suche die aus mehreren Wörtern besteht ja dann eine "oder"-Suche durchführen, also Ergebnisse für jedes einzelne Wort liefern würde.
Außerdem führt das wissende Nutzen von Anführungsstrichen um Wortkombinationen als Gesamt-String zu suchen zu keinem Ergebnis, was für den Kunden verwirrend sein dürfte.
Die Meisten dürften die Verwendung der Anführungszeichen auch von der Google-Suche kennen. Daß man das als User wenn man das normale Suchfeld benutzt mangels Info evtl. nicht weiß, darf nicht wegmachen, daß es so nicht schlüssig ist wie es momentan ist.

Attachments (0)

Change History (7)

comment:1 by noRiddle, 5 years ago

*NACHTRAG 2*
Mir fällt in dem Zusammenhang noch auf, daß xtc_parse_search_string() eine Ungereimtheit haben muß, denn setzt man ein weinzelnes Wort in double quotes, z.B. "testartikel" wird der String genauso übernommen, inkl. quotes und es kommt ein 410 gone Statuscode auf die advanced_search_result.php .

Gruß,
noRiddle

comment:2 by noRiddle, 5 years ago

Fix für den Nachtrag ?

if (substr($pieces[$k], -1 ) == '"') {
          // Turn the flag off for future iterations
          $flag = 'off';

          //$objects[] = trim($pieces[$k]);
          $objects[] = trim(str_replace('"', '', $pieces[$k])); //why keep quotes in string ?, with quotes single word will only be found with empty space behind it, 02-2021, noRiddle

Außerdem wird an einigen Stellen preg_replace() benutzt wo ein str_replace() ausreichen würde.

Gruß,
noRiddle

comment:3 by Torsten Riemer, 5 years ago

Milestone: modified-shop-2.0.6.0

comment:4 by Gerhard Waldemair, 5 years ago

Resolution: fixed
Status: newclosed

In 13450:

fix #1982 - fix search

comment:5 by noRiddle, 5 years ago

Die preg_replace() die mit str_replace() ersetzt werden könnten sind in der 2.0.6.0 noch drin.

Gruß,
noRiddle

comment:6 by Torsten Riemer, 5 years ago

Erstelle dafür bitte ein neues Ticket mit Bezug auf diese hier, denn die Fehler aus dem Ticket wurden korrigiert und das ist kein Fehler mehr, sondern nur noch eine Optimierung.
Danke dir. *thumbs*

Last edited 5 years ago by Torsten Riemer (previous) (diff)

comment:7 by anonymous, 5 years ago

Erledigt: Ticket #2032

Gruß,
noRiddle

Version 0, edited 5 years ago by anonymous (next)

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.