Problème bouton PHP

Darkeez

Darkeez Le 25 avril 2017 à 18:33 (Édité le 25 janvier 2019 à 17:53)

Bonjour à tous et à toutes !

J'ai un petit "bug" sur mon site, j'ai un bouton abonnement qui marche parfaitement, quand on clique dessus ça actualise la page et change la valeur du bouton en marquant "Abonné" au lieu de "S'abonner", oui un peu comme sur YouTube, sauf que moi quand je ré-actualise cette page sans cliqué sur le bouton, il m'affiche "S'abonner" alors que je le suis déjà et inversement, que faire ?

Voici le code :

$verif_abo = $bdd->prepare('SELECT * FROM abonnements WHERE id_feel = ? AND id_abonnement_feel = ?');
$verif_abo->execute(array($_SESSION['unique_id'], $unique_id));
$rowCount_abonnement = $verif_abo->rowCount();
if ($rowCount_abonnement >= 1) {
   if (isset($_POST['abo'])) {
   if($_SESSION['unique_id'] != $unique_id){
      $abo = htmlspecialchars($_POST['abo']);
      $ins_abo = $bdd->prepare('DELETE FROM abonnements WHERE id_feel = ? AND id_abonnement_feel = ?');
      $ins_abo->execute(array($_SESSION['unique_id'], $unique_id));
      $value_btn = "S'abonner";
   } else {
      $erreur = "Vous ne pouvez pas vous abonner à votre propre Feel !";
   }
}
} else {
if (isset($_POST['abo'])) {
   if($_SESSION['unique_id'] != $unique_id){
      $abo = htmlspecialchars($_POST['abo']);
      $ins_abo = $bdd->prepare('INSERT INTO abonnements (id_feel, id_abonnement_feel, date_time_abonnement) VALUES (?,?,NOW())');
      $ins_abo->execute(array($_SESSION['unique_id'], $unique_id));
      $value_btn = "Abonné";
   } else {
      $erreur = "Vous ne pouvez pas vous abonner à votre propre Feel !";
   }
}
}
Merci de votre aide !

Julian
Zbuu

Zbuu Le 25 avril 2017 à 21:02

Salut, 

Quand tu ré-actualise la page puisque que tu n'appuie pas sur le bouton, ça n'envoi pas de formulaire et si le formulaire n'est pas envoyé alors tu ne rentre pas dans ta condition if(isset($_POST['abo']). du coup je penses que tu peux deviner ce qu'il te reste à faire 😀 
Darkeez

Darkeez Le 25 avril 2017 à 21:09

Salut,

Même sans rentrer dans la condition ça ne marche pas, merci de ta réponse 😀
TheOldNoob

TheOldNoob Le 25 avril 2017 à 21:20

Salut,
Utilise un cookie 😀
Balatharas

Balatharas Le 26 avril 2017 à 14:53

Pas besoin d'un cookie je pense
$value_btn = ""; // On crée quand même la variable au cas ou
if($rowCount_abonnement >= 1) {
   $value_btn = "Abonné";
} else {
   $value_btn = "S'abonner";
}
Et du coup normalement tu n'as pas besoin de changer ta variable $value_btn
if($_SESSION['unique_id'] != $unique_id) {
  $abo = htmlspecialchars($_POST['abo']);
  $ins_abo = $bdd->prepare('INSERT INTO abonnements (id_feel, id_abonnement_feel, date_time_abonnement) VALUES (?,?,NOW())');
  $ins_abo->execute(array($_SESSION['unique_id'], $unique_id));
  $value_btn = "Abonné"; // ICI
}

if($_SESSION['unique_id'] != $unique_id) {
  $abo = htmlspecialchars($_POST['abo']);
  $ins_abo = $bdd->prepare('DELETE FROM abonnements WHERE id_feel = ? AND id_abonnement_feel = ?');
  $ins_abo->execute(array($_SESSION['unique_id'], $unique_id));
  $value_btn = "S'abonner"; // ET ICI
}
Zbuu

Zbuu Le 26 avril 2017 à 14:53

au niveau de ton bouton tu as essayé de faire un echo : 
<?= $rowCount_abonnement >= 1 ? "S'abonner" : "Abonné"; ?>
Darkeez

Darkeez Le 28 avril 2017 à 17:33

Ne fonctionne pas, toujours pareil, et pour les cookies je fais comment ?
Balatharas

Balatharas Le 28 avril 2017 à 17:52

Ne fonctionne pas c'est à dire ? Aucun changement ?
Cookies
Désolé j'étais obligé x)
JujudufootFR

JujudufootFR Le 28 avril 2017 à 17:53

Aucun changement (j'ai changé de compte) ^^
Balatharas

Balatharas Le 28 avril 2017 à 20:16

As-tu au moins regardé le lien ?
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte