Home
Download
Add-ons
Help
Forum
Organisation
Project
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
May 26, 2012, 11:55:49 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search:
Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter
hier
und auf unserer
neuen Webseite
.
155556
Posts in
21715
Topics by
7737
Members
Latest Member:
gx-world
WebsiteBaker Community Forum
Deutsch (German)
Hilfe/Support
(Moderator:
badknight
)
Schon wieder ;) Umlaute bei Suche
Pages: [
1
]
Go Down
Author
Topic: Schon wieder ;) Umlaute bei Suche (Read 286 times)
fischstäbchenbrenner
Offline
Posts: 271
Schon wieder ;) Umlaute bei Suche
«
on:
February 06, 2012, 09:45:15 AM »
Ich weiß, ein Klassiker... XY-ungelöst
Template "Findle".
links oben das Suchefeld. Genauer: die Suggestions
http://websitebaker.at/wb-templates/template-findle.html
Sobald ich ein Wort eingebe, das einen Umlaut enthält (zb "menü" ) ist vorbei mit Vorschlägen.
(Die Darstellungsfehler in den Vorschlägen spielen hier keine Rolle)
Dasselbe hier:
http://www.oekl-bauen.at/
zb "Ställe"
Wo soll ich den Fehler suchen?
Alles ist auf UTF8 gestellt, MySQL-Zeichensatz: UTF-8 Unicode (utf8), die Kollation der Datenbank-Felder scheint keine Rolle zu spielen.
Nebenbei: Auch mit phpMyAdmin wird nichts gefunden, das einen Umlaut enthält.
ABER: Wenn ich die Felder direkt in phpMyAdmin eingebe, funktioniert es - da wie dort.
EDIT:
Ich habe bei der oekl-Seite jetzt in das Suchscript eingefügt:
$q = utf8_encode ( $q );
Jetzt gehen äöß (
ü scheinbar nicht..
)
EDIT2:
Es funktioniert nur mit Feldern, deren Kollation auf unicode steht....
Ich verstehe es aber trotzdem nicht.
«
Last Edit: February 06, 2012, 10:23:56 AM by fischstäbchenbrenner
»
Logged
Burn, baby, burn!
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #1 on:
February 06, 2012, 11:26:35 AM »
Hallo !
Wenn auch in der datenbank keine umlaute sind, sind sie wohl umgewandelt worden durch
etwas wie
http://www.dynamic-webpages.de/php/function.htmlentities.php
da braucht es dann in dem search wohl was ähnliches, vielleicht ?
Logged
amanuen
Offline
Posts: 6
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #2 on:
February 06, 2012, 02:30:38 PM »
Das Problem hab ich auch schon bemerkt
Wie es aussieht, wird dann nach einem leeren String gesucht..da steht dann wahrscheinlich auch:
Ergebnisse für ''
Aber die Suche ist ja eh veraltet
Der fehler liegt also wohl irgendwo im Code und nicht bei den Einstellungen..tipp
e ich mal
Logged
fischstäbchenbrenner
Offline
Posts: 271
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #3 on:
February 06, 2012, 02:51:22 PM »
Hallo,
Nein, das meine ich nicht. Die WB-eigene Suche funktioniert schon, auch mit Umlauten. Dass die Suche nicht optimal ist, wissen wir, aber das funktioniert in den meisten CMS so, prinzipbedingt.
Ich rede von den Suggestions in o.g. Template. Da wird nur in title, descriptions, keywords gesucht, und da gibt es keine Entities.
Mein Problem ist schlichtweg: Ich verstehe die Zusammenhänge nicht.
Logged
Burn, baby, burn!
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #4 on:
February 06, 2012, 03:04:13 PM »
Hallo !
So auf den zweiten Blick mein ich, es könnte mit
Code:
$q = preg_replace("/[^\\0-9a-zA-Z_\-\.\/]/", "", $q); // only allow valid chars
im quicksearch.php des templates findle zu tun haben. Mach doch mal den Kommentar bei
// echo $q ;
raus und schau, was es macht.
Logged
fischstäbchenbrenner
Offline
Posts: 271
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #5 on:
February 06, 2012, 04:15:39 PM »
Ja, wenn ich die Zeile auskommentiere, und das einfüge:
$q = utf8_encode ( $q );
dann gehts.
Zusätzlich muss noch auf manchen Sites (aber nicht überall) die Kollation von title, descriptin und keywords auf utf-8 gestellt werden.
Aber das ist "basteln" - nicht verstehen.
Logged
Burn, baby, burn!
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #6 on:
February 06, 2012, 06:08:44 PM »
Hallo !
Basteln ist das nicht, ich hab das durch Analyse des Codes gefunden.
Code:
$q = preg_replace("/[^\\0-9a-zA-Z_\-\.\/]/", "", $q); // only allow valid chars
ist ein "regulärer Ausdruck" ( die Syntax davon kapier ich nie mehr) , der nur Zeichen in einem gewissen Ausschnitt zuläßt, aber z.B keine Umlaute.
Es steht drin , daß
0-9
a-z
A-Z
_ . / ,
erlaubt sind, Umlaute z.B werden also gefiltert.
Es ist schwer zu sagen, was passiert, wenn man im Suchfeld z.B Dropletcode eingibt,
wenn man solche Möglichkeiten nicht rausfiltert. ( [[ ... ]] & = ).
Besser wäre es, die Umlaute in den regulären Ausdruck mitzunehmen, aber das kann ich nicht.
Alle Module, die Eingaben von außen annehmen machen Sicherheitsüberprüfungen.
Ich find, es wäre besser die auszubauen als durch was zu ersetzen, was pauschal alle Zeichen
erlaubt
Code:
$q = preg_replace("/[^\\0-9a-zA-Z_\ä\ö\ü\Ä\Ö\Ü\ß\-\.\/]/", "", $q); // only allow valid chars
könnte klappen, aber ich errate das eher weil mir das systematisch vorkommt.
danach vielleicht der utf8_encode
«
Last Edit: February 06, 2012, 06:21:22 PM by gottfried
»
Logged
jacobi22
Betatester
Offline
Posts: 1376
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #7 on:
February 06, 2012, 06:20:57 PM »
Quote from: gottfried on February 06, 2012, 06:08:44 PM
Code:
$q = preg_replace("/[^\\0-9a-zA-Z_\-\.\/]/", "", $q); // only allow valid chars
ist ein "regulärer Ausdruck" ( die Syntax davon kapier ich nie mehr) , der nur Zeichen in einem gewissen Ausschnitt zuläßt, aber z.B keine Umlaute.
dann nimm doch die Umlaute mit
Code:
$q = preg_replace("/[^\\0-9a-zA-ZÀ-Üà-üß_\-\.\/]/", "", $q); // only allow valid chars
Logged
LG Uwe
Wer sagt, Reichtum ist alles, hat nie ein Kind lächeln gesehen.
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #8 on:
February 06, 2012, 06:24:53 PM »
Quote
dann nimm doch die Umlaute mit wink
Code:
$q = preg_replace("/[^\\0-9a-zA-ZÀ-Üà-üß_\-\.\/]/", "", $q); // only allow valid chars
Ja, das wär aus Sicherheitsaspekten sicher besser.
prima, daß jacobi22 regexp besser kennt als ich.
der utf8_encode könnte hinterher aber zusätzlich dennoch nötig sein
Logged
jacobi22
Betatester
Offline
Posts: 1376
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #9 on:
February 06, 2012, 07:14:12 PM »
mal theoretisch, weil ich nun lokal überhaupt keine Probleme habe
wie wär es denn mit mit einem
else
für den Fall, das die uncodierte Suche keinen Erfolg = Treffer bringt
Originalcode:
Code:
if($res->numRows() > 0) {
while($row = $res->fetchRow()) {
$menu_title = $row['menu_title'];
$counter ++;
$link = WB_URL.PAGES_DIRECTORY.$row['link'].PAGE_EXTENSION;
//$p_id = $row['page_id'];
$ergtext .= '<li><a href="'.$link.'">'.$menu_title.'</a></li>
';
if ($counter > 19) { break; }
}
}
geändert
Code:
if($res->numRows() > 0) {
while($row = $res->fetchRow()) {
$menu_title = $row['menu_title'];
$counter ++;
$link = WB_URL.PAGES_DIRECTORY.$row['link'].PAGE_EXTENSION;
//$p_id = $row['page_id'];
$ergtext .= '<li><a href="'.$link.'">'.$menu_title.'</a></li>
';
if ($counter > 19) { break; }
}
}
else
{
$q = utf8_encode ( $q );
$theq = "SELECT * FROM `".TABLE_PREFIX."pages` WHERE visibility='public' AND searching=1 AND CONCAT(`page_title`, `menu_title`,`description`, `keywords`) LIKE '%".$q."%' LIMIT 0 , 30";
$res = $database->query($theq);
if($res->numRows() > 0) {
while($row = $res->fetchRow()) {
$menu_title = $row['menu_title'];
$counter ++;
$link = WB_URL.PAGES_DIRECTORY.$row['link'].PAGE_EXTENSION;
//$p_id = $row['page_id'];
$ergtext .= '<li><a href="'.$link.'">'.$menu_title.'</a></li>
';
if ($counter > 19) { break; }
}
}
}
Logged
LG Uwe
Wer sagt, Reichtum ist alles, hat nie ein Kind lächeln gesehen.
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #10 on:
February 07, 2012, 07:52:49 PM »
ja ... stimmt schon. Alle haben viel zeit reingesteckt.
Eigentlich sollte der Browser doch das mit dem Zeichensatz regeln, wenn das template entsprechend codiert ist,
oft sieht man dort .... (DEFAULT-CHARSET) else utf-8
dann läßt der reguläre Ausdruck aber noch immerkeine Umlaute durch was
a) lästig
b) sicherer ist
dem könnte man mit einer geänderten regexp abhelfen (jacobi hat oben den Vorschlag geliefert)
wenn der Default_Charset und der in der Datenbank ohne templateänderung
(ich glaub z.B FG erzwingt UTF-8 in der Datenbank ohne Rücksicht auf default)
nicht übereinstimmt , wäre jacobi22 Anpassung schon sehr hilfreich ,
wenn vorher die regexp den Eingabestring auf erlaubte Zeichen abprüft.
Die weglassen halt ich eben für ein Risiko.
Logged
fischstäbchenbrenner
Offline
Posts: 271
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #11 on:
February 07, 2012, 09:38:21 PM »
Quote from: gottfried on February 07, 2012, 07:52:49 PM
(ich glaub z.B FG erzwingt UTF-8 in der Datenbank ohne Rücksicht auf default)
Das ist keine Lösung, sondern Ignoranz.
Die Foldergallery ist schon lange kein Musterbeispiel mehr.
Sieht aus, als gäbe es keine allgemeine Lösung; aber hinreichende Strategien für Korrekturen.
Logged
Burn, baby, burn!
gottfried
Offline
Posts: 981
Re: Schon wieder ;) Umlaute bei Suche
«
Reply #12 on:
February 08, 2012, 10:00:15 AM »
Quote
(ich glaub z.B FG erzwingt UTF-8 in der Datenbank ohne Rücksicht auf default)
Das ist keine Lösung, sondern Ignoranz.
Die Foldergallery ist schon lange kein Musterbeispiel mehr.
nützlich find ich sie schon. Bei der bleibt die Seite weiß, wenn man Umlaute in den Bildernamen hat.
Logged
Pages: [
1
]
Go Up
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Announcements
=> Security Announcements
=> Documentation
=> WebsiteBaker Website Showcase
=> Guest Area & Off-Topic
-----------------------------
English
-----------------------------
=> WebsiteBaker 2.9
===> Announcements
===> Help/Support
=====> Modules / Extensions
===> Suggestions
===> Software bugs
=> Help & Support
=> Modules
=> Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code)
=> jQuery
=> Templates, Menus & Design
=> WebsiteBaker Language Files
=> WebsiteBaker 2.x discussion
=> WebsiteBaker 3
=> Archive (posts up to 2007)
-----------------------------
Deutsch (German)
-----------------------------
=> Ankündigungen
=> WebsiteBaker 2.9
===> Ankündigungen
===> Hilfe/Support
=====> Module / Extensions
===> Vorschläge
===> Softwarefehler
===> Erfahrungs und Testberichte
=> Hilfe/Support
=> Module & Snippets
=> Templates & Design
=> Tutorials
=> jQuery
=> Diskussion über WB
=> Off-Topic
=> Archiv für Themen bis 2007
-----------------------------
Nederlands (Dutch)
-----------------------------
=> Aankondigingen
=> Hulp & Ondersteuning
=> Niet-Terzake (Off Topic)
-----------------------------
Francais (French)
-----------------------------
=> Help/Support
-----------------------------
Italiano (Italian)
-----------------------------
=> Help/Support
-----------------------------
Bakery (WB shop module)
-----------------------------
=> Bakery English
=> Bakery Deutsch
-----------------------------
KeepInTouch (Multi Contact Module)
-----------------------------
=> KeepInTouch English
=> KeepInTouch Deutsch
Loading...