Aidez moi a sécuriser bouton favoris

Fermé
banshee10 - 22 juin 2013 à 22:55
 banshee10 - 24 juin 2013 à 12:57
Bonjour a tous,

J'ai pas une grosse XP en php mais j'ai quand même réussi a me débrouiller pour programmé un bouton "favoris" pour mon site mais je stresse a l'idée de le mettre a l'oeuvre car je suis pratiquement sur d'avoir oublier des choses (niveau sécurité) et avant de le mettre en place j'aimerais être sur a 100% qu'il n'est est pas de faille!! Je fais appel a vous

<?php
require_once 'BDD.php';

$userid = intval($_SESSION['user']['id']);
$miniature= htmlspecialchars(addslashes($_GET['b']));
$image = htmlspecialchars(addslashes($_GET['f']));
$username = htmlspecialchars(addslashes($_SESSION['user']['username']));

/* On vérifie que l'image que l'utilisateur souhaite mettre en favoris existe bien sinon c'est redirection */ 
if(isset($_GET['f'])){ 
$exist = $DB->query("SELECT image,miniature FROM images WHERE image=:image AND miniature=:miniature",array('image'=>$image,'miniature'=>$miniature));
if(empty($exist)){
header('Location:notfound.php');
exit();
}

/* On vérifie que l'utilisateur n'est pas déjà cette image en favoris si c'est le cas on lui mets un message d'erreur et on le redirige sur la page d'ou il vient */ 
$cat = $DB->query(" 
SELECT username,image FROM favoris WHERE image=:image AND username=:username",array('image'=>$image,'username'=>$username));
if(!empty($cat)){

$_SESSION['erreur'] = "Vous avez déjà mis cette image dans vos favoris.";
header('Location:images.php?m='.$_GET['f']);
exit();
}	


/* on vérifie que l'utilisateur est logué sinon c'est redirection vers la page de log in */ 
if(!$_SESSION['user']['username']){ 
header('Location:login.php');
exit();

}	
/* Si toute les conditions sont réunis , on ajoute l'image en favoris dans la bdd et on redirige l'utilisateur vers la page d'où il venait */ 
else{ 
$data =array(
'user_id'=>$userid,
'miniature'=>$miniature,
'username'=>$username,
'image'=>$image
);

$sql ="INSERT INTO favoris (username,user_id,miniature,image,date) VaLUES(:username,:user_id,:miniature,:image,NOW())";
            
$rep = $DB->insert($sql,$data);
$_SESSION['erreur'] = "Cette image a été ajouté a vos favoris";
 header('Location:images.php?m='.$_GET['f']);
 exit;

 }

}
?>


voila un grand merci d'avance a ceux qui prendront le temps de lire et de m'aider, bonne soirée
A voir également:

1 réponse

quelqu'un?
0