staging.inyokaproject.org

[Bug] Private Nachricht an sich selbst senden

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Vegeta

Avatar von Vegeta

Anmeldungsdatum:
29. April 2006

Beiträge: 7943

Man kann keine PNs an sich selber schicken, das ist okay. Durch einen Bug ist es aber dennoch möglich. Ändert man die Schreibweise - schreibt beispielsweise alles groß oder klein - so kann man doch an sich selber eine PN schicken. 😀

blackbird Team-Icon

Avatar von blackbird

Anmeldungsdatum:
19. November 2004

Beiträge: 3396

Schöne neue unicode Welt. Zwing uns jetzt nicht die Unicode Case Foldings für Python zu implementieren 😉

craesh

Avatar von craesh

Anmeldungsdatum:
12. April 2006

Beiträge: Zähle...

blackbird hat geschrieben:

Schöne neue unicode Welt. Zwing uns jetzt nicht die Unicode Case Foldings für Python zu implementieren 😉

Sind die String-Methoden upper() und lower() nicht Unicode-sicher? Wenn ja, dann wäre es doch mit einem simplen "sender.lower() == user.lower()" getan 😉

blackbird Team-Icon

Avatar von blackbird

Anmeldungsdatum:
19. November 2004

Beiträge: 3396

craesh hat geschrieben:

Sind die String-Methoden upper() und lower() nicht Unicode-sicher? Wenn ja, dann wäre es doch mit einem simplen "sender.lower() == user.lower()" getan 😉

Unicode ist ein *kleines* bischen schwieriger. MySQL mit utf8_general_ci stellt "FUSS" mit "fuß" gleich. Python allerdings hat aus Geschwindigkeitsgründen nur ein in-place Casing dh jedes Zeichen wird bei upper() lower() wieder in die selbe Position im Char Array gepackt und damit keine möglichkeit aus einem "ß" ein "SS" zu machen.

Mit anderen Worten: wir sind zu faul.

craesh

Avatar von craesh

Anmeldungsdatum:
12. April 2006

Beiträge: 222

Dass MySQL aus einem doppelten S ein scharfen macht, ist doch nur von der Collation abhängig. Und diese kann man für jedes Feld separat definieren. Nimm doch einfach für das Feld "username" eine Collation, die etwas weniger liberal ist. Auf die Schnelle habe ich nicht viel finden können, nur dass es angeblich mit "utf8_bin" gehen soll (habe ich aber noch nicht getestet!).

tux21b Team-Icon

Avatar von tux21b

Anmeldungsdatum:
15. August 2005

Beiträge: 1698

Wir könnten IDs vergleichen *auf die TODO-Liste schreib*

blackbird Team-Icon

Avatar von blackbird

Anmeldungsdatum:
19. November 2004

Beiträge: 3396

craesh hat geschrieben:

Dass MySQL aus einem doppelten S ein scharfen macht, ist doch nur von der Collation abhängig. Und diese kann man für jedes Feld separat definieren. Nimm doch einfach für das Feld "username" eine Collation, die etwas weniger liberal ist. Auf die Schnelle habe ich nicht viel finden können, nur dass es angeblich mit "utf8_bin" gehen soll (habe ich aber noch nicht getestet!).

Jo. utf8_bin geht, die ist nämlich case sensitive. Aber weil wir momentan von einer case insensitive Collation abhängen ist das auf die schnelle nicht drin.

craesh

Avatar von craesh

Anmeldungsdatum:
12. April 2006

Beiträge: 222

blackbird hat geschrieben:

Jo. utf8_bin geht, die ist nämlich case sensitive. Aber weil wir momentan von einer case insensitive Collation abhängen ist das auf die schnelle nicht drin.

Ein ALTER TABLE... COLLATION 'utf9_bin'; (die genaue Syntax hab ich gerade nicht im Kopf) sollte doch reichen, um das Problem zu lösen, oder? Ist schnell gemacht, und man spart sich ne Menge Python-Akrobatik 😉 Sobald die Datenbank neu aufgesetzt wird muss man diesen Schritt zwar wiederholen, aber das passiert ja zum Glück nicht allzu oft.

maix Team-Icon

Avatar von maix

Anmeldungsdatum:
11. Februar 2007

Beiträge: 3095

prost,

craesh hat geschrieben:

Sobald die Datenbank neu aufgesetzt wird muss man diesen Schritt zwar wiederholen, aber das passiert ja zum Glück nicht allzu oft.

Nope 😉 wir haben Migrations (danke mitsuhiko ☺) damit müssen wir es nur einmal in die Liste eintragen.

grüße, maix

blackbird Team-Icon

Avatar von blackbird

Anmeldungsdatum:
19. November 2004

Beiträge: 3396

craesh hat geschrieben:

Ein ALTER TABLE... COLLATION 'utf9_bin'; (die genaue Syntax hab ich gerade nicht im Kopf) sollte doch reichen, um das Problem zu lösen, oder?

Nein. Weil der Wiki Quellcode erwartet eine case insensitive Collation. Zumindest momentan.

craesh

Avatar von craesh

Anmeldungsdatum:
12. April 2006

Beiträge: 222

blackbird hat geschrieben:

craesh hat geschrieben:

Ein ALTER TABLE... COLLATION 'utf9_bin'; (die genaue Syntax hab ich gerade nicht im Kopf) sollte doch reichen, um das Problem zu lösen, oder?

Nein. Weil der Wiki Quellcode erwartet eine case insensitive Collation. Zumindest momentan.

Das Wiki und sontige andere Teile der Software bzw. der Datenbank bleiben davon unbetroffen, wenn ihr nur die Collation des einen Feldes für den Benutzernamen ändert. Mehr dazu findet ihr in der Doku: 9.1.3.4. Column Character Set and Collation.

blackbird Team-Icon

Avatar von blackbird

Anmeldungsdatum:
19. November 2004

Beiträge: 3396

craesh hat geschrieben:

Das Wiki und sontige andere Teile der Software bzw. der Datenbank bleiben davon unbetroffen, wenn ihr nur die Collation des einen Feldes für den Benutzernamen ändert. Mehr dazu findet ihr in der Doku: 9.1.3.4. Column Character Set and Collation.

Joa. So ist das schon wesentlich schlüssiger. Dennoch bin ich dafür das über die IDs zu lösen 😉

craesh

Avatar von craesh

Anmeldungsdatum:
12. April 2006

Beiträge: 222

blackbird hat geschrieben:

craesh hat geschrieben:

Das Wiki und sontige andere Teile der Software bzw. der Datenbank bleiben davon unbetroffen, wenn ihr nur die Collation des einen Feldes für den Benutzernamen ändert. Mehr dazu findet ihr in der Doku: 9.1.3.4. Column Character Set and Collation.

Joa. So ist das schon wesentlich schlüssiger. Dennoch bin ich dafür das über die IDs zu lösen 😉

Sorry, wenn ich gestern Nacht etwas zu ungenau war - eigentlich hatte ich die ganze Zeit das im Sinn. War schon spät ☺

Antworten |