Tach!
Ein htmlspecialchars() drumherum, wenn es nach HTML ausgegeben wird, und PHP_SELF ist genauso ungefährlich wie alles andere.
Wenn man sich angewöhnt $_SERVER['SCRIPT_NAME'] zu verwenden, braucht man sich nicht um die Lücke, die PHP_SELF darstellt mit extra Funktionen zu schließen.
Du musst sowieso bei jeder HTML-Ausgabe den Kontextwechsel beachten. Außerdem ist SCRIPT_NAME nicht in allen Fällen passend (Rewriting). Was spricht denn gegen das Leerlassen des Action-Attributs? Kein Einfügen, kein Kontextwechsel, noch nicht mal ein Funktionsverlust.
Bitte? Da wird doch alles mit echo ausgegeben, was mit echo ausgegeben werden muss.
Ich habe ja nicht gesagt, dass es falsch ist. In den meisten Editoren ist jedoch die Ausgabe mittels Stringverkettung übersichtlicher (vom Kontextwechsel her) als so ein Konstrukt, zumal man sich Schreibarbeit spart. Ob das nun üblich ist oder nicht: Es war ein Tipp meinerseits.
Und ich tippte dagegen. Für mich wird es nicht übersichtlicher, wenn der Editor alles als String einfärbt und die HTML-Teile nicht weiter hervorhebt. Etwas mehr Tipparbeit spart man sich mit der Verwendung von <?= statt <?php echo. Ab PHP 5.4 ist das stets verfügbar, vorher nur wenn short_open_tag angeschaltet ist. - Letzlich ist es Geschmackssache, ob man Stringverknüpfung oder mit Komma getrennte echo-Parameter verwendet oder PHP als Template-Sprache ansieht, in der man nur die notwendigen variablen Teile mit PHP-Code ausgibt.
dedlfix.