Gildennachrichten

Begonnen von undernet, 02. Oktober 2015, 15:53:59

« vorheriges - nächstes »

undernet

Daumen hoch  :-D

Kann geschlossen werden
undernets Blog - Schaut hinein: RP Ereignisse und Ingame news, Updates & Events >>20€ Gutschein für OnePlus Zusatzinhalte!<<

Valdar

Da es korrigiert ist: magst du es doch noch ausführen, TLP?
"So make sure you love like you've never been hurt
and when you dance, dance like there's no one watching you" - Alexisonfire (get fighted)

TheLightPrince

#17
Es ist ne Mischung aus escapen und händischem replace von zeichen.

Das '-Zeichen wird escapt und anschließend entfernt, wodurch ein unescapter backslash überbleibt. Zusammen mit gewissen Zeichen ergeben sich besondere bedeutungen. Eine davon ist der backslash am ende, wodurch das stringende escapt wird und dadurch kein gültiger code entsteht => keien nachricht wird eingetragen.
im falle von 'test( -> \'test -> \test ) ergibt sich das Sonderzeichen \t (ein Tab).
\s ergibt ein leerzeichen
\n wird scheinbar wieder ersetzt und ergibt ebenfalls ein Leerzeichen.

hat man beispielsweise eine gerade anzahl an '-Zeichen eingegeben, so ergibt sich immer eine sammlung an escapten backslashes, wodurch das letzte zeichen nicht escapt wird und die nachricht wird gesendet. Jede ungerade anzahl an '-zeichen am ende der nachricht ergibt eine ungerade anzahl an backslashes, wodurch immer das letzte das stringende escapt -> ungültiger SQL Code.

Iwas anderes passierte aber auch noch, da die backslashes mehrfach verarbeitet wurden und beispielsweise leere Nachrichten erzeugt werden konnten per '' -> \'\' -> \\ -> \ -> [EMPTY].

@Xeri:
Zum Fix: Leider die falsche Funktion erwischt. Wenn ich das richtig sehe hast du htmlentities verwendet, aber htmlspecialchars wird beim Kontextwechsel von PHP nach HTML verwendet. htmlentities macht zu viel und wird heute nicht mehr wirklich verwendet.

und Xeri, wenn du gerade dabei bist: Selber "Bug" auch bei Grund für Einzahlung in die Gildenkasse ;)
bzw.: Du hast das an ganz vielen Stellen drin. Einfach mal versuchen den Spieler ' in die Gilde einzuladen, dann ist die Ausgabe, das der Spieler \\\' nicht gefunden werden konnte.
Bei Rängen kommt wenn man am Ende ein '-Zeichen platziert ein backslash raus
und so weiter und so weiter :) Code aus längst vergessen Tagen ^^

Lg TLP
WINGED GODS