Zoals hier wordt uitgelegd:Beschermt mysql_real_escape_string() VOLLEDIG tegen SQL-injectie?
Op basis van uw codefragment heeft u twee keer verbinding gemaakt met de database.
$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);
En u heeft de databaselink-ID niet opgegeven voor:
$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']);
Daarom heeft mysql_set_charset geen effect op echte escape geleverd$_POST
voor tekens van meerdere bytes.
Suggestie
- verwijder de tweede
mysql_connect($db_host,$username,$password);
- expliciet toevoegen
$db_con
bij het doen vanmysql_real_escape_string