Open svenk opened 9 years ago
Zeichen, zwischen denen Verwechselungsgefahr besteht, deaktiviert (etwa 1 und l, o und 0)
das gilt aber nur für die automatisch erzeugten URLs?
Denn das wäre schon eine ziemliche Einschränkung für sprechende Kurz-URLs, wenn man auf i und o verzichten muss...
Nutzerfreundliches Feedback finde ich wichtig - ideal wäre es natürlich, das vorher abzufangen. Oder so ein kleines Rulebook zu verlinken.
das gilt aber nur für die automatisch erzeugten URLs? Denn das wäre schon eine ziemliche Einschränkung für sprechende Kurz-URLs
Richtig, das gilt nur für automatisch erzeugte URLs. Gerade diese Unterscheidung ist ja wichtig: Wir haben zwei verschiedene Mengen erlaubter Zeichen für die beiden Typen von gekürzten URLs (automatisch vs manuell). Ansonsten würden wir nämlich Gaga werden -- dann würden wir entweder keine Bindestriche etc. in manuellen Kürzeln erlauben können, oder wir hätten automatische Kürzel, die unleserlich wie "-_Aa98" werden könnten.
Mit welcher Intention erstellen Benutzer Kürzel mit Großbuchstaben, und sollte man sie nicht eher dazu belehren, damit aufzuhören, statt sie brutal zu ersetzen?
BInnenmajuskeln sind schon nützlich - "SciEnglish" sagt mehr aus als "scienglish". ABER es ist halt unpraktisch.
Daher ist belehren gut. Schön wäre natürlich ein Popup (bzw. eine Meldung): 'Ihre gewählte Kurz-URL enthält Großbuchstaben (bzw. sonstige Zeichen), die bei der Eingabe auf Mobilgeräten unpraktisch sein kann. Wollen Sie das wirklich??'
oder so.
Daher ist belehren gut. Schön wäre natürlich ein Popup (bzw. eine Meldung): 'Ihre gewählte Kurz-URL enthält Großbuchstaben (bzw. sonstige Zeichen), die bei der Eingabe auf Mobilgeräten unpraktisch sein kann. Wollen Sie das wirklich??'
Genau an so eine Meldung hab ich gedacht, als Popup unter dem Eingabefeld für selbstgewählte Kürzel. In der gleichen Form, wie heutzutage Warnungen kommen, dass zB das gewählte Passwort zu schwach ist. Also vgl. diese Mockups:
hübsch diskrete Bilder :)
Mal eine andere Frage, woher weiß YOURLS eigentlich, dass http://tinygu.de/infos zur Info-Seite führen soll und keine Kurz-URL ist?
@thomkeh: Ab Zeile 31 in yourls-go.php wird geschaut, ob es eine gleichnamige Datei im Verzeichnis pages gibt.
Okay und neue Kürzel werden auch danach überprüft?
Okay und neue Kürzel werden auch danach überprüft?
Was meinst du mit neuen Kürzeln? Die yourls-go.php wird direkt durch yourls-loader.php aufgerufen. Die Loader-Datei unterscheidet, ob der Beuscher eine Kurz-URL oder Statistiken anschauen möchte. Und die Loader-Datei wird wiederum per htaccess/dem Webserver aufgerufen, wenn es die Datei (wie tinygu.de/abcdef) nicht gibt (vgl. https://github.com/YOURLS/YOURLS/wiki/Nginx-configuration).
Die yourls-go.php ist ziemlich kurz und übersichtlich: In Zeile 17 wird die Datenbank angefragt, und danach geschaut ob es einen Eintrag gibt oder nicht.
Ich wollte wissen, was passiert wenn ich "infos" als Kürzel anfordere. Habs getestet, gibt einen Fehler. Alles gut :)
Gibt's ein Gefühl dafür, wann die Case-Warnung eingebaut werden könnte?
@crstnbr wollte sich das glaub ich mal anschauen, zumindest hat er bei #9 Interesse bekundet. Allgemein würd ich gerne einen unsere Hiwis dafür begeistern ;-).
Wir sind immer noch nicht sicher, wie mit Groß- und Kleinschreibung umgegangen werden soll.
Zunächst muss zwischen benutzergewählten Kürzeln und automatisch generierten unterschieden werden.
Automatisch generierte Kürzel
Normalerweise zählt YOURLS Zahlen und Buchstaben, was aber ziemlich fummelig aussieht (kurz.de/1, kurz.de/2, ... kurz.de/9, kurz.de/a, kurz.de/b, ... kurzl.de/z, ...). Stattdessen habe ich das Plugin Random Keywords installiert, welches, wie man in der plugin.php nachlesen kann, einen Zufallsstring aus 4 Zeichen als Kürzel erzeugt.
Hier können wir den Zeichensatz frei wählen, aus dem für das Kürzel gewählt wird. Siehe dafür zB die YOURLS FAQ, Abschnitt Difference Between Base 36 And Base 62 Encoding sowie yourls_rnd_string.
Mit dem Commit (a5b9895a)[https://github.com/PhysikOnline-FFM/gu-urlshorter/commit/a5b9895a02c9c9e3fcf3e052e1950ff729943798] hab ich explizit Kleinbuchstaben ausgewählt sowie typische Zeichen, zwischen denen Verwechselungsgefahr besteht, deaktiviert (etwa 1 und l, o und 0). Der verwendete Zeichensatz ist also aus der Liste
Ich denke, damit können wir gut fahren. Die Frage nach "Case Sensitive", also Groß- und Kleinschreibung umgehen wir, da die generierten Kürzel nur aus Kleinbuchstaben bestehen können. Sind zb auch einfacher einzugeben im Smartphone.
Manuell generierte Kürzel
Alternativ erlauben wir Benutzern, manuelle Kürzel einzugeben. YOURLS funktioniert hier (leider) so, dass es ohne Warnung alle ungültigen Zeichen aus dem Kürzel entfernt. Wir können hier sicher die GUI etwas benutzerfreundlicher machen und den Benutzer vor dem Abschicken warnen, wenn so etwas passiert.
Dennoch müssen wir überlegen, welche Zeichen erlaubt sein sollen. Was soll mit Großbuchstaben passieren? Im oben verlinkten Commit hab ich Großbuchstaben zugelasen (Stichwort "Base62" statt "Base36"). Allerdings gibt es die Alternativoption, Großbuchstaben mit Kleinbuchstaben zu ersetzen. Dies kann an mehreren Stellen geschehen: Direkt beim Erzeugen des Links, oder wenn man den Link aufruft. Es ist ziemlich verwirrend, dazwischen zu unterscheiden, deshalb sollte man dann konsequent mit Kleinbuchstaben fahren. Will man das? Anders gefragt: Mit welcher Intention erstellen Benutzer Kürzel mit Großbuchstaben, und sollte man sie nicht eher dazu belehren, damit aufzuhören, statt sie brutal zu ersetzen?
Referenz dieses Tickets: Bertrams E-Mail-Einwand