je viens vers vous aujourd'hui car j'ai un soucis avec un de mes scripts PHP, j'ai fait une boutique de badges mais le problème est le message affiché lorsque l'utilisateur a correctement acheté un badge,
voici le code:
Page de badges:
Code : Tout sélectionner
$BadgeInfo = $bdd->prepare('SELECT * FROM cms_badges WHERE categorie = ? ORDER BY -id');
$BadgeInfo->execute(array($Categorie->id));
if ($BadgeInfo->rowCount() == 0) {
echo "Pas de badge à vendre dans cette catégorie";
}
else
{
while ($Badge = $BadgeInfo->fetch(PDO::FETCH_OBJ)) {
if(isset($_SESSION['id'])) {
$VerificationsBadgePossede = $bdd->prepare('SELECT user_id, badge_id FROM user_badges WHERE user_id = ? AND badge_id = ?');
$VerificationsBadgePossede->execute(array($Session->id, $Badge->id_badge));
}
if (isset($_POST['acheter'])) {
include('php/requetes/boutique/badges.php');
}
?>
<div class="col-md-12 badge-badge-field">
<div class="col-md-1 col-xs-2 col-xl-1"><img src="<?= $SWF->c_images; ?>/album1584/<?= $Badge->id_badge; ?>.gif" class="badge-badge-image"></div>
<div class="col-md-8 col-xs-6 badge-badge-info-field"><span class="badge-badge-title col-md-12 col-xs-12"><?= $Badge->titre_badge; ?></span>
<span class="badge-badge-prix col-md-12 col-xs-12"><?php if($Badge->monnaie == 'jetons') { ?><?= $Badge->prix; ?> jetons<?php } elseif($Badge->monnaie == 'diamants') { ?><?= $Badge->prix; ?> diamants<?php } ?></span></div>
<div class="col-md-3"><form method="post"><input type="hidden" value="<?= $Badge->id_badge; ?>" name="badge_code"><?php if(isset($_SESSION['id'])) { if($VerificationsBadgePossede->rowCount() == 1) { ?><input type="submit" value="Possédé" name="acheter" class="col-md-12 badge-badge-already-buy"><?php } else { ?><input type="submit" value="Acheter" name="acheter" class="col-md-12 badge-badge-buy"><?php }} else { ?><input type="submit" value="Acheter" name="acheter" class="col-md-12 badge-badge-buy"><?php } ?></form></div>
</div>
<?php }} ?>
</div>
<?php }} ?>Code : Tout sélectionner
if (isset($_SESSION['id'])) {
$BadgeID = htmlspecialchars($_POST['badge_code']);
$BadgeEnVente = $bdd->prepare('SELECT * FROM cms_badges WHERE id_badge = ?');
$BadgeEnVente->execute(array($BadgeID));
if($BadgeEnVente->rowCount() == 1) {
$BadgeInfos = $BadgeEnVente->fetch(PDO::FETCH_OBJ);
$BadgePossede = $bdd->prepare('SELECT user_id, badge_id FROM user_badges WHERE user_id = ? AND badge_id = ?');
$BadgePossede->execute(array($Session->id, $BadgeID));
if ($BadgePossede->rowCount() == 0) {
if ($BadgeInfos->monnaie == 'jetons') {
if ($Session->jetons >= $BadgeInfos->prix) {
$NouveauBadge = $bdd->prepare('INSERT INTO user_badges (user_id, badge_id) VALUES (?, ?)');
$NouveauBadge->execute(array($Session->id, $BadgeID));
$UpdateJetons = $Session->jetons - $BadgeInfos->prix;
$PaiementUtilisateur = $bdd->prepare('UPDATE users SET jetons = ? WHERE id = ?');
$PaiementUtilisateur->execute(array($UpdateJetons, $Session->id));
?><script type="text/javascript">swal("Bravo !", "Tu as acheté un badge", "success")</script><?php
}
else
{
?><script type="text/javascript">swal("Oups !", "Tu n'as pas assez de jetons", "error")</script><?php
}
}
elseif ($BadgeInfos->monnaie == 'diamants') {
if ($Session->vip_points >= $BadgeInfos->prix) {
$NouveauBadge = $bdd->prepare('INSERT INTO user_badges (user_id, badge_id) VALUES (?, ?)');
$NouveauBadge->execute(array($Session->id, $BadgeID));
$UpdateDiamants = $Session->vip_points - $BadgeInfos->prix;
$PaiementUtilisateur = $bdd->prepare('UPDATE users SET vip_points = ? WHERE id = ?');
$PaiementUtilisateur->execute(array($UpdateDiamants, $Session->id));
?><script type="text/javascript">swal("Bravo !", "Tu as acheté un badge", "success")</script><?php
}
else
{
?><script type="text/javascript">swal("Oups !", "Tu n'as pas assez de diamants", "error")</script><?php
}
}
}
else
{
?><script type="text/javascript">swal("Oups !", "Tu possèdes déjà ce badge", "error")</script><?php
}
}
else
{
?><script type="text/javascript">swal("Oups !", "Ce badge n'est pas à vendre", "error")</script><?php
}
}
else
{
header('Location: '. $Web->lien .'/index?message=invite');
}
?>