Bonjour à tout le monde.
Je travaille sur un projet d'école qui est une application web qui permet de gérer des formations. (en gros).
J'ai quasiment fini le gros du travail, mais j'ai un problème sur le script qui permet aux utilisateurs de s'enregistrer à une formation.
Actuellement, les utilisateurs peuvent s'enregistrer s'il reste de la place à la formation définis par le formateur.
Le premier utilisateur qui s'enregistre à une formation ne pourra pas se ré-engistrer a la même formation, mais par contre, tous les autres utilisateurs, le deuxième ou le troisième pourront s'inscrit plusieurs fois à la même formation jusqu'à ce qu'il ne reste plus de place disponible.
Je n'arrive pas à comprendre pourquoi ma condition s'applique qu'une seule fois.
if(isset($_POST['parti']))
{
$requ3 = $bdd->prepare("SELECT id_participant FROM inscription WHERE id_formation = ? ");
$requ3->execute(array($mation['id']));
$scription = $requ3->fetch();
$requ3->closeCursor();
if($_SESSION['id'] !== $scription['id_participant'])
{
if($place_dispo > 0)
{
$req4 = $bdd->prepare('INSERT INTO inscription(id_formation, id_participant) VALUES(:id_formation, :id_participant)');
$req4->execute(array(
'id_formation' => $mation['id'],
'id_participant' => $_SESSION['id'],
));
echo '<p>tu es inscrit</p> ';
$delai = 2;
header("Refresh: $delai;");
}else echo "Il n'y a plus de place disponible";
}else echo '<p>tu es deja inscrit</p>';
}
Donc le problème est : le deuxième utilisateur vient cliquer sur le bouton pour s'enregistrer, il reçoit le message "tu es inscrit" puis 2 seconds plus tard la page s'actualise et la variable $place_dispo diminue de 1, mais quand ce même utilisateur clique une nouvelle fois sur le bouton pour la même formation, il reçoit le message "tu es déjà inscrit" mais il est quand même rajouté a la base de données avec un refresh de la page 2 secondes plus tard avec une décrémentation de la variable $place_dispo
Merci beaucoup d'avoir pris le temps de lire mon problème et si vous avez d'autre question n'hésiter pas. :)