sql >> Databasteknik >  >> RDS >> Mysql

Vilken är den korrekta kodningen / escape / html-entiteterna som behövs när du skickar data från js till php, php till mysql och för REST json-svar

När jag använder php/mysql/jquery för att skicka data fram och tillbaka, slutar jag med att använda följande kombination av kodningar/escapes, och det verkar fungera bra för mig.

1) du behöver inte göra någonting här, OM du inte skickar en URL (jag tror att detta bara är för GET-förfrågningar) - men om du skickar en url måste du använda encodeURIComponent(url), som kommer att escape ordentligt &och specialtecken i webbadressen (se mer här ).

2) Använd mysqli och bundna parametrar, det kommer att göra allt för dig (läs om det här a> )

3) Jag använder alltid detta när jag ekar data till en HTML-fil :

<?php
  htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>

Detta kommer att koda alla specialtecken korrekt (falskt är för "ingen dubbelkodning"). Se också till att du har rätt UTF-8-metataggar överst på dina HTML-sidor.

4) Att använda json_encode bör alltid undvika dina data ordentligt, men jag skulle använda koden från #3 bara för att vara säker. Men du kommer förmodligen bara att behöva det om du returnerar data med specialtecken.



  1. Kan jag skapa en dynamisk .htaccess-fil?

  2. Hur kontrollerar jag om ett värde är ett heltal i MySQL?

  3. T-sql, ticks, tidsstämpel

  4. Kan inte komma åt tabellen utan public.table-namn. Finns det något sätt att bli av med allmänheten?