Matthias Apsel: konkrete Codebeispiele

Beitrag lesen

Om nah hoo pez nyeetz, Sven Rautenberg!

<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?

In ein script-Element eines HTML-Dokuments

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.

Also in echo "f.person.value = '" einfach das ' weglassen

  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... :)

Die Ausgabe erfolgt im HTML-Formular als Werte von einem Textarea- bzw. Input-Element, ich dachte, das geht aus meinem Posting hervor

  1. & wieder erlauben
    Warum?

Damit die "Laus" & Klaus nicht zu die &quot;Laus&quot; &amp; Klaus wird.

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?

s.o.

Matthias

--
1/z ist kein Blatt Papier.