Sven Rautenberg: konkrete Codebeispiele

Beitrag lesen

Moin!

<form>

...
  <input type="text" name="person">
  <label for="notiz">Ihre Bemerkungen:<textarea id="notiz" name="notiz" rows="2"></textarea></label>
  ...
</form>


>   
  

> Sollte ein schon bestehender Datensatz aufgerufen werden, wird das Formular gefüllt durch  
>   
> ~~~php

echo "f.person.value = '" . str_replace('&amp;','&',htmlspecialchars(substr(json_encode($gkind['name']),1,-1), ENT_NOQUOTES, $double_encode = false)) . "';\n";  

> echo "f.notiz.value = '" . str_replace('&amp;','&',htmlspecialchars(substr(json_encode($gkind['notiz']),1,-1), ENT_NOQUOTES, $double_encode = false)) . "';\n";

Und wo hinein echost du das?

zum schnelleren Lesen:

  1. json_encode

Im Javascript-Kontext notwendig.

  1. die begrenzenden Anführungszeichen entfernen

Warum? json_encode liefert die mit, warum was eigenes produzieren? Das Escaping der Anführungszeichen innen basiert auf den Anführungszeichen außen.

  1. htmlspecialchars

Mit NOQUOTES - was ich erstmal für problematisch halte. Warum dies? -- Relevant ist dafür allerdings der Kontext, in dem die Ausgabe stattfindet, und den enthälst du ja schon wieder vor... :)

  1. & wieder erlauben

Warum?

Das htmlspecialchars ist erst nach diesem Thread dazugekommen. Ist das hier wirklich notwendig? Jedenfalls kann ich als Person auch </script> eingeben, ohne das das Script abgebrochen wird.

Kontext?

Welche Kontextwechsel könnten noch nicht berücksichtigt sein, welche sonstigen Hinweise sind noch zu geben?

Siehe oben...

- Sven Rautenberg