Som forklar her :Beskytter mysql_real_escape_string() FULDSTÆNDIG mod SQL-injektion?
Baseret på dit kodestykke har du tilsluttet databasen to gange.
$db_con=mysql_connect($db_host,$username,$password);
$connection_string=mysql_select_db($db_name);
mysql_connect($db_host,$username,$password);
mysql_set_charset('utf8',$db_con);
Og du har ikke angivet databaselink-id'et for :
$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']);
Derfor har mysql_set_charset ingen effekt på real escape leveret$_POST
for multi-bytes tegn.
Forslag
- fjern den anden
mysql_connect($db_host,$username,$password);
- tilføj eksplicit
$db_con
når du lavermysql_real_escape_string