Länge der Usernamen für die Ranglisten begrenzen

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

  • Hallo!


    Ich habe mal wieder eine Frage. Einer meiner Tipper hat einen ewig langen Usernamen angelegt. Das sprengt natürlich die Optik in den Ranglisten! Kann man evt. irgendwo einstellen, dass der Name in den Ranglisten z.B. mit nur 10 Buchstaben angezeigt wird obwohl der Name z.B. 30 Buchstaben hat! Ist das überhaupt möglich?? Oder kann man irgendwo einstellen das man beim registrieren nur eine bestimmte Anzahl an Buchstaben verwenden kann/darf??


    Danke und Gruß


    Andre

  • Hi Andre,


    ich habe es mal kurz bei mir getestet. Ich habe in der Datei home.registrieren.php folgenden Code in Zeile 388 erweitert


    PHP
    1. <input type="text" name="req[username]" maxlength="10" class="inputClass" style="<?php echo $fieldstyle; ?>"

    Durch den Zusatz maxlength="10" kann man nur 10 Zeichen als Benutzernamen eingeben.


    Gruß

    Dennis

  • Hallo Dennis!


    Das habe ich jetzt gerade auch bei mir eingebaut. Dankeschön dafür! Kann man denn evt. auch noch irgendwo einstellen, dass der Username des Tippers in den Ranglisten z.B. mit nur 10 Buchstaben angezeigt wird obwohl der Name z.B. 30 Buchstaben hat? Der eine Tipper hat ja jetzt schon den ewig langen Namen angelegt!


    Danke und Gruß Andre

  • Ich weiß nicht ob man es so einstellen kann, dass nur 10 Buchstaben angezeigt werden.

    Alternativ kannst du in der base.css ab Zeile 898 ein width einbauen, in etwa so:


    Das ist aber nur die Anzeige für die Mitspieler, das gleiche müsstest du dann auch für die Rangliste vornehmen. Kommt direkt danach in der base.css, bei mir ab Zeile 911.


    Du könntest natürlich auch den Tipper fragen ob er nicht einen kürzeren Benutzernamen nehmen kann. Diesen änderst du dann einfach in der Datenbank um und lässt für kommende Registrierungen die gewünschte Begrenzung drin.

  • Danke Oldie!


    Habe ich gerade auch schon mal getestet und würde funktionieren. Ich möchte nur ungern den Tipper vorschreiben wie lang deren Username sein soll! Von mir aus sollen die Jungs ja einen megalangen Usernamen haben aber Ist es denn nicht möglich, irgendwo in den Ranglisten diesen Zusatz (maxlength="10" oder ähnlich..) wie oben beschrieben einzubauen?? Das Betrifft ja im Prinzip drei Bereiche. Home/Info Menü/Gewinne dann noch die Tippübersicht und zuletzt die "normale" Rangliste mit dem Podest!

    Das wäre super!!


    Danke und Gruß Andre

  • oder so 6 gibt die anzahl an buchstaben maximal zurück. weiß aber im Augenblick nicht ob das depricated also veraltet ist

    substr($str,0,6) ist nicht deprecated. Ich bin mir nicht über die von euch verwendete Zeichenkodierung sicher. Bei UTF-8 sollte mb_substr() eingesetzt werden, um nicht ungültige Zeichen auszugeben.

  • ... da gibt es im Content gleich 10 Ranglisten php! Von boni/bonuswetten/costum/dep/gruppenboni/gruppenkompakt/gruppenspiele/kompakt/menü und spiele....


    Das mit dieser "Zeichenkette" wäre schon cool und im Prinzip genau was ich für die Ranglisten bräuchte. Die Tipper können einen Name auswählen den sie wollen und angezeigt wird nur der Anfang bzw. eine bestimmte Anzahl von Buchstaben!


    Danke und Gruß Andre

  • Es war nur ein Beispiel, das ich aus gutem Grund genannte habe. Tatsächlich kann man das Verhalten über die Konfig-Option STRICT_TRANS_TABLES einstellen. Bei neueren Versionen vom mysql und mariadb sind die standardmäßig aktiviert. Mutmaßlich ist sie bei dir deaktiviert. Unter Linux steht der Param in /etc/my.cnf. Man sollte an der Datei aber nur spielen, wenn man genau weiß, was man tut.


    Da man aber keine Annahme über die Einstellung machen kann und sogar davon ausgehen muss, das die Standardeinstellung verwendet wird, ist die Änderung auf PHP-Seite entweder beim Registrieren oder bei der Ausgabe die sichere (sicher im Sinne von überall funktionierend) Methode.