sql >> Databáze >  >> RDS >> Mysql

Jaké je správné kódování / escapování / htmlentity potřebné při odesílání dat z js do php, php do mysql a pro odpovědi REST json

Kdykoli používám php/mysql/jquery k předávání dat tam a zpět, nakonec použiji následující kombinaci kódování/escapování a zdá se, že mi to funguje dobře.

1) nemusíte zde nic dělat, POKUD neposíláte URL (myslím, že je to pouze pro požadavky GET) - ale pokud posíláte url, musíte použít encodeURIComponent(url), který bude správně unikat &a speciální znaky v adrese URL (více viz zde ).

2) Použijte mysqli a vázané parametry, všechny escapování udělá za vás (přečtěte si o tom zde )

3) Toto vždy používám při echoingu dat do souboru HTML:

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

Tím se správně zakódují všechny speciální znaky (nepravda znamená "žádné dvojité kódování"). Také se ujistěte, že máte v horní části svých html stránek správné metaznačky UTF-8.

4) Použití json_encode by mělo vždy správně uniknout vašim datům, ale pro jistotu bych použil kód z #3. Pravděpodobně jej ale budete potřebovat pouze v případě, že vracíte data se speciálními znaky.



  1. Zámek čtení Mysql VYBRAT PRO AKTUALIZACI

  2. Vztah jeden k jednomu v MySQL

  3. Migrace MySQL na PostgreSQL na AWS RDS, část 2

  4. Jak vytvoříte připravená prohlášení s drahokamem mysql2?