Possible en double:
Best way to stop SQL Injection in PHPComment rendre mon registre PHP/mySQL plus sécurisé?
ma question est de savoir comment puis-je faire inscrire plus sûr? Sur register.html l'utilisateur ajoute des données et si dans register.php le nom d'utilisateur existe dans la base de données, il lui dit d'utiliser un autre nom d'utilisateur.
Est-ce mauvais contre SQL Injection? D'un autre côté, comment puis-je m'assurer que les utilisateurs n'utiliseront que des caractères alphanumériques?
register.php
$sql ="SELECT * FROM $table_name WHERE username= '$_POST[username]'";
$result = @mysql_query($sql,$connection) or die(mysql_error());
//get the number of rows in the result set
$num = mysql_num_rows($result);
//checks it see if that username already exists
if ($num != 0){
echo "<P>Sorry, that username already exists.</P>";
echo "<P><a href=\"#\" onClick=\"history.go(-1)\">Try Another Username.</a></p>";
exit;
}else{
$sql = "INSERT INTO $table_name VALUES
('$_POST[firstname]', '$_POST[lastname]', '$_POST[username]', password('$_POST[password]'), 'Users', '', '', '$pchange',
'$_POST[email]', '$default_url', '$verify', '')";
Voir http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in- php – JJJ
Appartient à [codereview] (http://codereview.stackexchange.com/) (mais non, il est terriblement vulnérable à l'injection et je parierais qu'il est vulnérable à XSS aussi). – Quentin