Ich seh mich nicht als "metin2" developer. Ich bin mir dessen Exploits bewusst und weiß wie man diese behebt.
Dass hier einfach ein Parameter gefehlt hat, kam wohl durch Unachtsamkeit zustande. Normalerweise benutzt man htmlspecialchars
auch nicht direkt im Code, sondern in einer separaten Funktion - wurde wie gesagt gefixed und damit ist die Sache für mich erledigt.
Dank metho konnten im Übrigen noch weitere, weniger dramatische Fehler behoben werden.
Du hast noch nicht das Verständnis, wann und wo du Serializing, Sanitizing, Encoding, Escaping, Converting, Validating etc. anwenden musst oder in welcher Reihenfolge.
Das sind Grundlagen für jeden Programmierer (besonders wenn du sagst du möchtest Web-Entwickler sein).
Wenn du meine Kritik als wertvoll erachtest, solltest diese Begriffe wirklich mal nachschauen und lernen oder du machst 1:1 genauso weiter wie bisher, aber dann wird dich nie einer Ernst nehmen können.
Wie bereits gesagt, würde ich dir empfehlen ein Framework zu verwenden. Aktuell stehst wissenstechnisch etwa da, wo iPeri steht, aber muss ja nichts heissen, er lernt auch dazu.