<? php
/* Si l'utilisateur a cliqué sur le bouton "Ajouter au panier" sur la page du produit, nous pouvons vérifier les données du formulaire.*/
if (isset($_POST['produit_id'], $_POST['quantité']) && is_numeric($_POST['produit_id']) && is_numeric($_POST['quantité'])) {
/* Définissez les variables post afin que nous puissions les identifier facilement, assurez-vous également qu'elles sont entières.*/
$produit_id = (int)$_POST['produit_id'];
$quantité = (int)$_POST['quantité'];
/* Préparez l'instruction SQL, nous vérifions essentiellement si le produit existe dans notre base de données.*/
$stmt = $pdo->prepare('SELECT * FROM produits WHERE id = ?');
$stmt->execute([$_POST['produit_id']]);
/* Récupère le produit depuis la base de données et renvoie le résultat sous forme de tableau.*/
$produit = $stmt->fetch(PDO::FETCH_ASSOC);
// Vérifier si le produit existe (le tableau n'est pas vide)
if ($produit && $quantité > 0) {
/*Le produit existe dans la base de données, maintenant nous pouvons créer/mettre à jour la variable de session pour le panier.*/
if (isset($_SESSION['panier']) && is_array($_SESSION['panier'])) {
if (array_key_exists($produit_id, $_SESSION['panier'])) {
// Le produit existe dans le panier, il suffit de mettre à jour la quantité.
$_SESSION['panier'][$produit_id] += $quantité;
} else {
// Le produit n'est pas dans le panier, ajoutez-le
$_SESSION['panier'][$produit_id] = $quantité;
}
} else {
/* Il n'y a aucun produit dans le panier, ceci ajoutera le premier produit au panier.*/
$_SESSION['panier'] = array($produit_id => $quantité);
}
}
// Empêcher la resoumission des formulaires...
header('location: index.php?page=panier');
exit;
}