Tach!

Dazu müsste der Platzhalter den Kontext kennen, in dem er sich befindet. htmlspecialchars() ist ja nicht für alle Kontexte eines HTML-Dokuments geeignet, mitunter muss man mehrere Maskierungen schachteln.

Natürlich. Die Frage ist nur wann. Es braucht hier nicht interessieren, dass $var1 Javascript ist. Und das javascript muss nichts wissen über den Kontxt in den es eingesetzt wird.

sprintf('<button onclick="%s">%s</button>', htmlspecialchars($var1), htmlspecialchars($var2));

In diesem einfachen Beispiel ist das noch kein Problem. Aber nimm mal eine URL in einem A-Element. Da wäre es theoretisch schon wie folgt. Praktisch kann man das htmlspecialchars() in dem Fall weglassen, weil rawurlencode() keine HTML-spezifischen Zeichen übriglässt.

sprintf('<a href="http://example.com/%s">%s</a>', htmlspecialchars(rawurlencode($var1)), htmlspecialchars($var2));

dedlfix.

freiwillige Angabe, für jeden sichtbar
freiwillige Angabe, für jeden sichtbar
freiwillige Angabe, für jeden sichtbar

Vorschau (Nachricht wird im Forum „Meta“ erscheinen)

  • Keine Tag-Vorschläge verfügbar
  • keine Tags vergeben

abbrechen

135

Wiki-Push: PHP

  1. 0
    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
              2. 0
                1. 0
                  1. 0
                    1. 0
            2. 0
              1. 0
                1. 0
                  1. 0
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
          2. 0
            1. 0
              1. 0

                Wiki-Push: PHP / Umfang des Einstieg in PHP-Bereichs

            2. 0

              Wiki-Push: PHP / Lesedauer

  3. 1
    1. 0
      1. 0
      2. 0
        1. 0
      3. 0

        Wiki-Push: PHP / Sandbox

        1. 0
          1. 0
            1. 0
    2. 0