Antwort an „Rolf B“ verfassen

Hallo Felix,

bitte vergiss bei aller Polemik nicht, dass der Hash-Teil der URL beim Browser bleibt.

Fachlich richtig ist hier: REQUEST_URI ist ein ungünstiger Baustein, um datenschutz.php anzusprechen.

Wenn ich https://example.com/foo/ aufrufe, dann funktioniert Siegfrieds Code wie gewünscht.

Das ist jedoch längst nicht immer der Fall. Dass die URL nur aus dem Verzeichnisnamen besteht, ist eher die Ausnahme. Man kann mit REQUEST_URI arbeiten, muss diese aber erstmal mit parse_url() zerlegen und den path herausholen, um den von Dir gezeigten Vermüllungsvektor zu beseitigen.

Darauf gehe ich jetzt aber nicht weiter ein, denn da wäre eine Frage, die Du und Gunnar nicht betrachtet habt: Ist dies ein Problem, das man überhaupt haben muss? Wenn datenschutz.php im gleichen Ordner steht wie das Script, aus dem heraus zum Datenschutz oder Impressum verlinkt werden soll, genügt <a href="./datenschutz.php">Datenschmutz</a>, PHP Akrobatik ist komplett unnötig.

Siegfried, ich finde es toll, dass Du dazu übergehen möchtest, HTML Code aus PHP nicht mehr mit echo auszugeben, sondern dafür in den HTML-Mode zurückzuschalten! Bitte gewöhne Dir auch noch an, Attributwerte in Anführungszeichen zu setzen.

Dies hier funktioniert zwar:

<a href=./datenschutz.php>Datenschutz</a>

aber es kann schnell passieren, dass ein Sonderzeichen in ein Attribut hinein gerät (es gibt ja viele davon, in denen ein Space durchaus normal ist) und damit den HTML-Parser abschießt.

<span class="divider dark">|</span>

würde beispielsweise ohne Anführungszeichen nicht funktionieren. Da Programmierer nur begrenzten Hirnschmalz haben, sollte man sich den Kopf nicht mit der Frage belasten, ob man für dieses konkrete Attribut nun Anführungszeichen braucht oder nicht, sondern einfach immer welche machen. Diese zwei Bytes machen den Kohl nicht merklich fetter.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen