connect_errno) {
die("Échec de la connexion - Veuillez réessayer plus tard : " . $mysqli->connect_error()); //affiche l'erreur
}
$mysqli->set_charset("utf8");
$rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id=" . $_GET['id'] . " LIMIT 1"); //ATTENTION: pas d'échappement dans la requête SQL (Injection SQL)
//exemple de correction avec les guillemets simples: $rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id='" . $mysqli->real_escape_string($_GET['id']) ."' LIMIT 1");
//exemple de correction sans les guillemets simples mais avec la suppression de tout caractère différent d'un nombre : $rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id=" . preg_replace("/[^0-9]/", "", $_GET['id']) . " LIMIT 1");
if ($rowsarticles->num_rows==0) {
echo "Aucun article à afficher.";
}
else if($row = $rowsarticles->fetch_array()) {
?>
" . $row['titre'] . ""; //ATTENTION: pas d'échappement de caractères (XSS stocké)
echo $row['contenu']; //ATTENTION: pas d'échappement de caractères (XSS stocké)
//exemple de correction : echo htmlentities($row['contenu']); et echo "
Article du jour
Commentaires
real_escape_string() autour de $_GET['id'], $_POST['pseudo'] et $_POST['commentaire'] //autre exemple de correction, en utilisant preg_replace et en enlevant les guillemets simples autour de $_GET['id'] comme vu ci-dessous $mysqli->query($queryinsert); } $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle=" . $_GET['id']);//ATTENTION: pas d'échappement dans la requête SQL //exemple de correction avec les guillemets simples : $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle='" . $mysqli->real_escape_string($_GET['id']) . "'"); //exemple de correction sans les guillemets simples mais avec la suppression de tout caractère différent d'un nombre : $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle=" . preg_replace("/[^0-9]/", "", $_GET['id'])); if ($rowscommentaires->num_rows==0) { echo "Aucun commentaire"; } else { while($row = $rowscommentaires->fetch_array()) { echo $row['pseudo'] . " dit :"; //ATTENTION: pas d'échappement de caractères (XSS stocké) echo " " . $row['commentaire'];//ATTENTION: pas d'échappement de caractères (XSS stocké) //exemple de correction : echo htmlentities($row['pseudo']); et echo htmlentities($row['commentaire']); echo "
"; } } ?>

