Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP e mySQL:Quando exatamente usar htmlentities?


Aqui está a regra geral.

Você quer que suas variáveis ​​sejam representações limpas dos dados. Ou seja, se você está tentando armazenar o sobrenome de alguém chamado "O'Brien", então você definitivamente não quero estes:
O'Brien
O\'Brien

.. porque, bem, esse não é o nome dele:não há e comercial ou barras nele. Quando você pega essa variável e a exibe em um contexto específico (por exemplo:inserir em uma consulta SQL ou imprimir em uma página HTML), isso é quando você o modifica.
$name = "O'Brien";

$sql = "SELECT * FROM people "
     . "WHERE lastname = '" . mysql_real_escape_string($name) . "'";

$html = "<div>Last Name: " . htmlentities($name, ENT_QUOTES) . "</div>";

Você nunca quer ter htmlentities -strings codificadas armazenadas em seu banco de dados. O que acontece quando você deseja gerar um CSV ou PDF, ou qualquer coisa que não seja HTML?

Mantenha os dados limpos e escape apenas para o contexto específico do momento.