Impedire che i codici dei caratteri HTML vengano resi in textarea
-
24-10-2019 - |
Domanda
È possibile visualizzare i codici dei caratteri HTML memorizzati in un campo di testo in SQL a una terapia senza renderli come carattere appropriato? Non ero e mi presentavo come & (il modo in cui è memorizzato nel tavolo). O è il loro modo in cui dovrei conservare l'HTML, quindi non dovrò preoccuparmi di questo?
(Il sito utilizza PHP)
Soluzione
In PHP è possibile utilizzare la funzione HTMLSpecialChars ( http://php.net/manual/en/function.htmlspecialchars.php ):
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>
E renderà:
<a href='test'>Test</a>
Se vuoi decodirli, usi semplicemente la funzione htmlspecialchars_decode
<?php
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str);
// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>
Altri suggerimenti
Quello di cui stai parlando si chiama codifica HTML; Ogni lingua moderna ha una struttura nella sua biblioteca per farlo, come la funzione HTMLSpecialChars in PHP. Per ulteriori informazioni PHP, vedere Questo è così domanda.
Dovresti anche assicurarti di sanificare correttamente gli input, anche contro più round di decodifica HTML; Altrimenti sarai suscettibile a CSS (Scripting del sito incrociato) Attacchi.