Problème bouton PHP
- Accueil
- Forum
- Programmation
- PHP
- Problème bouton PHP
Darkeez Le 25 avril 2017 à 18:33 (Édité le 25 janvier 2019 à 17:53)
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 Le 25 avril 2017 à 21:02 (Édité le 1 janvier 1970 à 01:00)
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 Le 25 avril 2017 à 21:09 (Édité le 1 janvier 1970 à 01:00)
Même sans rentrer dans la condition ça ne marche pas, merci de ta réponse 😀
Balatharas Le 26 avril 2017 à 14:53 (Édité le 1 janvier 1970 à 01:00)
$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_btnif($_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 Le 26 avril 2017 à 14:53 (Édité le 1 janvier 1970 à 01:00)
<?= $rowCount_abonnement >= 1 ? "S'abonner" : "Abonné"; ?>
Darkeez Le 28 avril 2017 à 17:33 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 28 avril 2017 à 17:52 (Édité le 1 janvier 1970 à 01:00)
JujudufootFR Le 28 avril 2017 à 17:53 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 28 avril 2017 à 20:16 (Édité le 1 janvier 1970 à 01:00)