sa remplace tout les charters spéciaux pas leur code (comme le signe copyright = ©)
Mais j'ai trouvé mieux !
mysql_real_escape_string($var)
$login = $_POST['login'];
$password = $_POST['password'];
$sql = "SELECT COUNT(*) FROM users WHERE login = '". $login ."' AND password = '". $password ."'";
La requête qui sera envoyé vers la base sera :
SELECT COUNT(*) FROM users WHERE login = 'admin' OR '1' = '1' AND password = 'abcd1234'
Ça va donner quoi si on ne protège par le code contre ça à ton avis ??
$login = mysql_real_escape_string($_POST['login']);
$password = mysql_real_escape_string($_POST['password']);
$sql = "SELECT COUNT(*) FROM users WHERE login = '". $login ."' AND password = '". $password ."'";
Juste besoin de mettre : mysql_real_escape_string(string) <?php
$pseudo = mysql_real_escape_string($_SESSION['username']);
$query = mysql_query("SELECT password, birthday, email, banned, banreason FROM accounts WHERE name = '".$pseudo."'") or die ("Error 1");
while ($row = mysql_fetch_assoc($query)) {
$email = mysql_real_escape_string($row["email"]);
$ban = mysql_real_escape_string($row["banned"]);
}
if ($ban = NULL || $ban < 1) {$bancheck = 'Non'}
else{$bancheck = 'Oui'};
?>
Es-ce car on ne peut pas faire une variable = 'mot' ?
if ($ban < '1') {
$bancheck = 'Non'};
elseif ($ban > '0') {
$bancheck = 'Oui'};
Pareil. Sa pointe toujours le } de : $bancheck = 'Non'};
if ($ban < '1') {
$bancheck = 'Non';
}
else if ($ban > '0') {
$bancheck = 'Oui';
}
Il faut un point-virgule derrière chaque commande. les if/else sont des structures de contrôlé, et les accolades de regroupement.