MyBB.de Forum

Normale Version: Probleme mit Darstellung von Sonderzeichen in Übersicht-Plugin
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

wie es aussieht hat das Übersicht-Plugin einen Fehler, der Sonderzeichen in Benutzernamen in bestimmten Fällen falsch darstellt. Hier ist ein Screenshot dazu:

[attachment=5966]

Siehe "H&S Films" bei den neuesten Antworten. Lustiger Weise tritt der Fehler in der Spalte der neuen Themen nicht auf Huh

Bei mir läuft die aktuelle Version von MyBB und die aktuelle Version des Plugins.

Ich hoffe jemand kann helfen, schonmal vielen Dank für Tipps Toungue

Edit: Achja, dieses Thema habe ich schon entdeckt, es scheint der gleiche Bug zu sein, allerdings find ich die entsprechende Textzeile nicht mehr, da sich das Plugin seitdem wohl ein wenig verändert hat.
Welche Version des Plugins ist installiert?
3.9.2, was zumindest laut MyBB.com die neueste Version sein sollte.
Interessant, da der Username eigentlich immer auf die gleiche Weise nachbehandelt wird... Entweder im Plugin ist doch ein htmlspecialchars zuviel was ich jetzt gerade übersehe, oder der Username ist in der Datenbank schon so... letzteres wäre natürlich bescheuert.
Ich habe nun versucht einen Testuser mit & im Namen anzulegen, klappt nicht.

"The username you entered contains bad characters. Please enter a different username."

Im Userhandler steht dieser Code fest drin:

PHP-Code:
if(strpos($username"<") !== false || strpos($username">") !== false || strpos($username"&") !== false || my_strpos($username"\\") !== false || strpos($username";") !== false || strpos($username",") !== false)
{
    
$this->set_error("bad_characters_username");
    return 
false;


Wenn ich über die Datenbank den Benutzernamen ändere auf <>&" und damit dann ein Posting schreibe, ist es wie befürchtet tatsächlich so, daß der Benutzername als &lt;&gt;&amp;&quot; in der Datenbank posts Tabelle selbst steht.

Benutzernamen mit diesen Zeichen werden von MyBB-Seite aus nicht unterstützt. Kann nur vermuten daß man diese Zeichen einfach verboten hat, anstatt das eigentliche Problem zu lösen (htmlspecialchars zuviel / zuwenig bzw. einfach an der falschen Stelle denn so sollte das nicht in die DB kommen).

Da kann ich im Plugin dann auch nicht mehr wirklich viel machen. Das müsste im MyBB behoben werden.

Wenn du einen Workaround suchst, in der overview_newest_posts() Funktion (ca. Zeile 900), ein htmlspecialchars_decode() vor dem overview_parseuser() Aufruf einfügen:

PHP-Code:
$posts['username'] = htmlspecialchars_decode($posts['username']);
$val2 overview_parseuser($posts['uid'], $posts['username']); 

Nur falls MyBB sich dann doch entscheiden sollte das Problem auf ihrer Seite zu beheben und diese Zeichen wieder zu erlauben, wird das dann den Workaround zu einem Bug machen - spätestens wenn sich ein User &amp; nennt und er dann von diesem Workaround zum einfachen & degradiert wird...

Alternativ müsste ich mir den Usernamen über die uid besorgen, aber das macht nur wieder das Query unnötig teurer...
Die entsprechende Code-Stelle lässt sich leicht finden...
Soweit ich das gesehen habe, wird es nur bei der Eingabe mit htmlspecialchars bearbeitet, bei der Ausgabe nicht mehr. Insofern scheint es mir zumindest durchgängig umgesetzt zu sein.
Hi, vielen Dank das hat funktioniert!

Sehr Schade, dass sich das MyBB-Team jetzt entschieden hat diese Art von Usernamen zu verbieten. Längerfristig werde ich meinen Namen dann wohl ändern müssen, um weitere Probleme zu vermeiden…
Was heißt "jetzt entschieden"? Diese Benutzernamen waren noch nie erlaubt.
Ah ok, dann liegt es daran, dass es der Admin-Account ist. Da scheint diese Sperre zumindest bei MyBB 1.2 noch nicht eingebaut gewesen zu sein.
Es kann sein, dass bei der Installation keine Prüfung stattfindet.