Ajouter des personnes dans une formation
Résolu/Fermé
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
-
22 oct. 2021 à 07:27
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 - 25 oct. 2021 à 12:38
chrisCL974 Messages postés 63 Date d'inscription jeudi 30 septembre 2021 Statut Membre Dernière intervention 25 novembre 2021 - 25 oct. 2021 à 12:38
A voir également:
- Ajouter des personnes dans une formation
- Ajouter une adresse mail - Guide
- Ajouter un profil netflix payant - Guide
- Ajouter agenda outlook dans google agenda - Guide
- Formation chatgpt gratuite - Guide
- Ajouter une signature sur word - Guide
3 réponses
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
22 oct. 2021 à 08:44
22 oct. 2021 à 08:44
Bonjour,
Donc.. si on remet tout dans l'ordre ...
Le dernier code que tu nous montres nous permet d'accéder au second
et le second fait appel au premier..
c'est bien ça ?
Ensuite ... tu dis que ça ne marche pas ... c'est à dire ???
As tu, au moins, mis un var_dump de tes variables POST (avant le IF et dedans...) histoire de voir ce que renvoi ton formulaire ?
ça serait bien de commencer par ça et de nous montrer ce que ça donne.... et de nous dire si au moins tu rentres dans le IF ..
Et puis.. si tu fais du PDO pour tes requêtes SQL il faudrait :
1 - Activer l'affichage des erreurs PDO dans la connexion à la bdd
2 - Utiliser les requêtes préparées
3 - Ecrire CHAQUE requête dans un bloc TRY/CATCH
--->>> Voir exemples ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Donc.. si on remet tout dans l'ordre ...
Le dernier code que tu nous montres nous permet d'accéder au second
et le second fait appel au premier..
c'est bien ça ?
Ensuite ... tu dis que ça ne marche pas ... c'est à dire ???
As tu, au moins, mis un var_dump de tes variables POST (avant le IF et dedans...) histoire de voir ce que renvoi ton formulaire ?
ça serait bien de commencer par ça et de nous montrer ce que ça donne.... et de nous dire si au moins tu rentres dans le IF ..
Et puis.. si tu fais du PDO pour tes requêtes SQL il faudrait :
1 - Activer l'affichage des erreurs PDO dans la connexion à la bdd
2 - Utiliser les requêtes préparées
3 - Ecrire CHAQUE requête dans un bloc TRY/CATCH
--->>> Voir exemples ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
22 oct. 2021 à 10:30
22 oct. 2021 à 10:30
Avec ce code:
function participant(){ //récupération PROPRE des variables AVANT de les utiliser $nomParticipant = isset($_POST['nomParticipant']) ? $_POST['nomParticipant'] : NULL; $prenomParticipant = isset($_POST['prenomParticipant']) ? $_POST['prenomParticipant'] : NULL; $fonctionParticipant = isset($_POST['fonctionParticipant']) ? $_POST['fonctionParticipant'] : NULL; $serviceParticipant = isset($_POST['serviceParticipant']) ? $_POST['serviceParticipant'] : NULL; echo "<br>POST (avant if) <br>"; var_dump($_POST); //if(isset($_POST['nomParticipant']) && isset($_POST['prenomParticipant']) && isset($_POST['fonctionParticipant']) && isset($_POST['serviceParticipant'])) { // $nomParticipant = $_POST['nomParticipant']; // $prenomParticipant = $_POST['prenomParticipant']; // $fonctionParticipant = $_POST['fonctionParticipant']; // $serviceParticipant = $_POST['serviceParticipant']; if($nomParticipant && $prenomParticipant && $fonctionParticipant && $serviceParticipant ) { echo "<br> JE SUIS BIEN ENTRE DANS LE IF ... "; if(empty($nomParticipant)) { //header('Location: index_demandeur.php?error=Nom du participant requis'); echo " ERREUR !!!! "; exit(); } else { $query = "INSERT INTO participant (nomParticipant, prenomParticipant, fonctionParticipant, serviceParticipant) VALUES ('$nomParticipant', '$prenomParticipant', '$fonctionParticipant', '$serviceParticipant')"; if($sql = $this->conn->query($query)) { echo " <div class='card w-25' style='padding:20px;color: #FFBC42; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b><q> ".$_POST['nomParticipant']." ".$_POST['prenomParticipant']." </q> a bien été enregistré pour cette formation</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); } else { echo " <aside class='w-25' style='background-color:white;box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.2);position:relative; border-radius:5px;color:white;padding:10px;margin:auto'> <h5 class='text-danger' style='text-align:center;margin-top:20px'><i class='fas fa-exclamation-triangle'></i> <b>Un problème est survenu!</b> <br> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center;font-size:16px'>Cliquez ici pour vous rediriger</a> </h5> </aside><br><br><br>"; exit(); } } } }
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
22 oct. 2021 à 11:20
22 oct. 2021 à 11:20
Je constate que tu n'as toujours pas appliqué les modifications demandées concernant l'exécution de ta requête .....
Le problème s'y trouve visiblement...
Tu es bien en PDO ??
Si oui, applique ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Le problème s'y trouve visiblement...
Tu es bien en PDO ??
Si oui, applique ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
>
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
Modifié le 22 oct. 2021 à 13:20
Modifié le 22 oct. 2021 à 13:20
J'ai suivi comme dans l'activation des erreurs
PDO :
L'erreur :
PDO :
public function __construct() { try { $this->conn = new mysqli( $this->server, $this->username, $this->password, $this->db); } catch(Exception $e) { die("Erreur de connexion" . $e->getMessage()); }
function participant(){ //récupération PROPRE des variables AVANT de les utiliser $nomParticipant = isset($_POST['nomParticipant']) ? $_POST['nomParticipant'] : NULL; $prenomParticipant = isset($_POST['prenomParticipant']) ? $_POST['prenomParticipant'] : NULL; $fonctionParticipant = isset($_POST['fonctionParticipant']) ? $_POST['fonctionParticipant'] : NULL; $serviceParticipant = isset($_POST['serviceParticipant']) ? $_POST['serviceParticipant'] : NULL; echo "<br>POST (avant if) <br>"; var_dump($_POST); //if(isset($_POST['nomParticipant']) && isset($_POST['prenomParticipant']) && isset($_POST['fonctionParticipant']) && isset($_POST['serviceParticipant'])) { // $nomParticipant = $_POST['nomParticipant']; // $prenomParticipant = $_POST['prenomParticipant']; // $fonctionParticipant = $_POST['fonctionParticipant']; // $serviceParticipant = $_POST['serviceParticipant']; if($nomParticipant && $prenomParticipant && $fonctionParticipant && $serviceParticipant ) { echo "<br> JE SUIS BIEN ENTRE DANS LE IF ... "; if(empty($nomParticipant)) { //header('Location: index_demandeur.php?error=Nom du participant requis'); echo " ERREUR !!!! "; exit(); } else { $query = "INSERT INTO participant (nomParticipant, prenomParticipant, fonctionParticipant, serviceParticipant) VALUES ('$nomParticipant', '$prenomParticipant', '$fonctionParticipant', '$serviceParticipant')"; $datas = array('nomParticipant'=>$nomParticipant, 'prenomParticipant'=>$prenomParticipant, 'fonctionParticipant'=>$fonctionParticipant, 'serviceParticipant'=>$serviceParticipant); try{ $requete = $this->conn->prepare($query) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
L'erreur :
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
>
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
22 oct. 2021 à 14:06
22 oct. 2021 à 14:06
purée.... tu n'es pas en PDO .. mais en mysqli !!!!
c'est donc les exemples fournis ici que tu dois suivre
https://www.php.net/manual/fr/mysqli.error.php
c'est donc les exemples fournis ici que tu dois suivre
https://www.php.net/manual/fr/mysqli.error.php
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
>
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
23 oct. 2021 à 18:58
23 oct. 2021 à 18:58
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
>
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
23 oct. 2021 à 20:33
23 oct. 2021 à 20:33
Et donc.. à quoi ressemble ton code maintenant ?
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
25 oct. 2021 à 08:07
25 oct. 2021 à 08:07
Nan, mais faut être cohérant dans les codes que tu écris...
Et vérifier que la connexion fonctionne est la première chose à faire ... quelque soit le code ...
Donc, dans ta connexion
Ensuite.. il reste l'exécution de ta requête ...
Là .. tu as copié tel quel l'exemple du site au lieu de l'adapter à tes besoins...
Normal donc que ça t'affiche une erreur !!!
Donc
A corriger par
bref... faut pas coller bêtement.. mais ADAPTER tes codes aux exemples trouvés sur le net !!
Et vérifier que la connexion fonctionne est la première chose à faire ... quelque soit le code ...
Donc, dans ta connexion
public function __construct() { $this->conn = new mysqli( $this->server, $this->username, $this->password, $this->db); /* Vérification de la connexion */ if ($this->conn->connect_errno) { printf("Échec de la connexion: %s\n", $this->conn->connect_error); exit(); } }
Ensuite.. il reste l'exécution de ta requête ...
Là .. tu as copié tel quel l'exemple du site au lieu de l'adapter à tes besoins...
Normal donc que ça t'affiche une erreur !!!
Donc
if (!$this->conn->query("SET a=1")) { printf("Message d'erreur : %s\n", $this->conn->error); }
A corriger par
//voir : https://www.php.net/manual/fr/mysqli.real-escape-string.php $query = "INSERT INTO participant (nomParticipant, prenomParticipant, fonctionParticipant, serviceParticipant) VALUES ('".$this->conn->real_escape_string($nomParticipant)."', '".$this->conn->real_escape_string($prenomParticipant)."', '".$this->conn->real_escape_string($fonctionParticipant)."', '".$this->conn->real_escape_string($serviceParticipant)."')"; if (!$this->conn->query($query)) { echo "<br>Erreur dans la requête " . $query ." <br>". $this->conn->error; exit(); }
bref... faut pas coller bêtement.. mais ADAPTER tes codes aux exemples trouvés sur le net !!
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
25 oct. 2021 à 09:15
25 oct. 2021 à 09:15
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
>
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
25 oct. 2021 à 09:21
25 oct. 2021 à 09:21
et bien voila ... le message d'erreur est assez clair .....
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
>
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
25 oct. 2021 à 09:29
25 oct. 2021 à 09:29
Mais du coup comment on pourrait envoyer le formulaire par rapport à la formation sélectionnée? De base c'était ça le problème
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
4 652
>
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
25 oct. 2021 à 09:45
25 oct. 2021 à 09:45
Et bien tu as l'information dans l' url lorsque tu affiche le formulaire ?
Tu peux donc ajouter, dans ce formulaire, un input de type hidden contenant la valeur qui se trouve dans l'url.
Grâce à ça, l'information sera envoyé en $_POST de la même façon que les autres données.
Tu peux donc ajouter, dans ce formulaire, un input de type hidden contenant la valeur qui se trouve dans l'url.
Grâce à ça, l'information sera envoyé en $_POST de la même façon que les autres données.
chrisCL974
Messages postés
63
Date d'inscription
jeudi 30 septembre 2021
Statut
Membre
Dernière intervention
25 novembre 2021
1
>
jordane45
Messages postés
38151
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 mai 2024
Modifié le 25 oct. 2021 à 10:18
Modifié le 25 oct. 2021 à 10:18
Un input comme ça?
Button qui envoie le formulaire :
Ajout du participant :
Button qui envoie le formulaire :
<button class="btn btn-warning" style="color:white"> <input type="hidden" value="<?php echo $row[0]['formaID']?>">Inscrire le participant</input> </button>
Ajout du participant :
function participant(){ $nomParticipant = isset($_POST['nomParticipant']) ? $_POST['nomParticipant'] : NULL; $prenomParticipant = isset($_POST['prenomParticipant']) ? $_POST['prenomParticipant'] : NULL; $fonctionParticipant = isset($_POST['fonctionParticipant']) ? $_POST['fonctionParticipant'] : NULL; $serviceParticipant = isset($_POST['serviceParticipant']) ? $_POST['serviceParticipant'] : NULL; if($nomParticipant && $prenomParticipant && $fonctionParticipant && $serviceParticipant ) { echo "<br> JE SUIS BIEN ENTRE DANS LE IF ... "; if(empty($nomParticipant)) { //header('Location: index_demandeur.php?error=Nom du participant requis'); echo " ERREUR !!!! "; exit(); } else { $query = "INSERT INTO participant (nomParticipant, prenomParticipant, fonctionParticipant, serviceParticipant) VALUES ('".$this->conn->real_escape_string($nomParticipant)."', '".$this->conn->real_escape_string($prenomParticipant)."', '".$this->conn->real_escape_string($fonctionParticipant)."', '".$this->conn->real_escape_string($serviceParticipant)."')"; if (!$this->conn->query($query)) { echo "<br>Erreur dans la requête " . $query ." <br>". $this->conn->error; exit(); } else { echo "<div class='card w-25' style='padding:20px;color: #FFBC42; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b><q> ".$_POST['nomParticipant']." ".$_POST['prenomParticipant']." </q> a bien été enregistré pour cette formation</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); }
22 oct. 2021 à 08:49
J'ai mit un var_dump après le if : var_dump($row) at ça affiche bien l'id de la formation = formaID
Et lorsque je rentre les données d'un participant, il me dirige vers ce code :
22 oct. 2021 à 09:07
Je disais donc :
Faut mettre un VAR_DUMP de $_POST AVANT ton IF
sous entendu .. le IF dans lequel tu te sers de ces variables .......
Autrement dit :
22 oct. 2021 à 09:10
22 oct. 2021 à 09:45
As tu rempli le formulaire puis cliqué sur le bouton pour l'envoyer avant de nous faire cette capture d'écran??
par ce que .. sinon..ça ne nous sert à rien...
22 oct. 2021 à 09:46