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

Qual é a codificação / escape / htmlentities corretas necessárias ao enviar dados de js para php, php para mysql e para respostas REST json


Sempre que uso php/mysql/jquery para passar dados para frente e para trás, acabo usando a seguinte combinação de codificações/escapings, e parece funcionar bem para mim.

1) você não precisa fazer nada aqui, a menos que esteja enviando uma URL (acho que isso é apenas para solicitações GET) - mas se você estiver enviando uma url, precisará usar encodeURIComponent(url), que escapará corretamente os &'s e os caracteres especiais no URL (veja mais aqui ).

2) Use mysqli e parâmetros vinculados, ele fará todo o escape para você (leia sobre isso aqui )

3) Eu sempre uso isso ao ecoar dados em um arquivo HTML:
<?php
  htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>

Isso codificará corretamente todos os caracteres especiais (o false é para "sem codificação dupla"). Certifique-se também de colocar as metatags UTF-8 adequadas no topo de suas páginas html.

4) Usar json_encode sempre deve escapar seus dados corretamente, mas eu usaria o código de #3 apenas para ter certeza. Mas você provavelmente só precisará dele se estiver retornando dados com caracteres especiais.