14 réponses
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Bonjour,
Je pense qu'il te manque les ":" devant tes variables dans ton BIND...
Je pense qu'il te manque les ":" devant tes variables dans ton BIND...
$req->bindParam(':nom', $nom, PDO::PARAM_STR); $req->bindParam(':prenom', $prenom, PDO::PARAM_STR); $req->bindParam(':email', $email, PDO::PARAM_STR);
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Bonjour
Merci de ton aide, mais malheureusement ça ne fonctionne toujours pas, il y a quelque chose mais quoi je ne vois toujours pas.
Si tu peux encore y jeter un oeil.
Merci
Merci de ton aide, mais malheureusement ça ne fonctionne toujours pas, il y a quelque chose mais quoi je ne vois toujours pas.
Si tu peux encore y jeter un oeil.
Merci
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Sans ta BDD .. et le reste de ton site.. comment veux tu que je teste ???
A la limite.. il faut essayer de debuguer en ajoutant des ECHO ...
En plus... tu utilises à la fois du POST et du GET ???
Essayes ceci
( j'ai changé ton IF par un SWITCH .. c'est plus propre...)
A la limite.. il faut essayer de debuguer en ajoutant des ECHO ...
En plus... tu utilises à la fois du POST et du GET ???
Essayes ceci
( j'ai changé ton IF par un SWITCH .. c'est plus propre...)
$action = isset($_POST['action']) ? $_POST['action'] : NULL; $register = isset($_POST['register'])?$_POST['register']:NULL; // Le temps des tests ... echo "<br> Variables GET :"; print_r ($_GET); echo "<br> Variables POST :"; print_r ($_POST); switch($action){ case 'add': if($register) { $nom = Security::clean($_POST['nom']); $prenom = Security::clean($_POST['prenom']); $email = Security::clean($_POST['email']); $sql = 'INSERT INTO tb_adherent SET nom=:nom, prenom=:prenom, email=:email'; $req = $bdd->prepare($sql); $req->bindParam('nom', $nom, PDO::PARAM_STR); $req->bindParam('prenom', $prenom, PDO::PARAM_STR); $req->bindParam('email', $email, PDO::PARAM_STR); $donnees = $req->execute(); if($donnees == TRUE) { echo 'OK'; } } else{ echo "<br> Error ! register =".$register ; } require_once 'add_user.php'; break; default: echo "<br> Error ! Action =".$action; break; }
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
En fait après avoir testé ça me retourne
Variables GET :Array ( [body] => user [type] => admin )
Variables POST :Array ( )
Error ! Action =
Ma base de donnée j'ai 4 champs
id
nom
prenom
email
j'en suis au début le reste c'est que du design, j'ai simplement créé un lien pour afficher le formulaire
Ton avis s'il te plait
Merci
Variables GET :Array ( [body] => user [type] => admin )
Variables POST :Array ( )
Error ! Action =
Ma base de donnée j'ai 4 champs
id
nom
prenom
j'en suis au début le reste c'est que du design, j'ai simplement créé un lien pour afficher le formulaire
<div id="content"> <form id="formulaire" action="" method="post"> <fieldset> <legend>Ajouter un membre</legend> <table cellpadding="0" cellspacing="3"> <tr> <th colspan="6">Coordonné :</th> </tr> <tr> <td width="20%">Nom :</td> <td width="30%"><input name="nom" class="content_input" size="30" type="text" value=""/></td> <td width="20%">Prénom :</td> <td width="30%"><input name="prenom" class="content_input" size="30" type="text" value=""/></td> </tr> <tr> <td width="20%">Adresse :</td> <td width="30%"><input name="adresse" class="content_input" size="30" type="text" value=""/></td> </tr> <tr> <td width="20%"><img src="image/mail.png" alt="Email" title="Email" height="22" width="22"/> Adresse mail :</td> <td width="30%"><input name="email" class="content_input" size="30" type="text" value=""/></td> </tr> </table> <!--#######################################################################################################################################--> <input type="hidden" name="send"/> <input type="submit" name="register" class="submit" value="Enregistrer"/> </fieldset> </form> </div>
Ton avis s'il te plait
Merci
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Tu as bien ton code PHP dans la même page que ton formulaire HTML ??
Sinon.. il faut que tu modifies ton FORM
Par :
Sinon.. il faut que tu modifies ton FORM
<form id="formulaire" action="" method="post">
Par :
<form id="formulaire" action="chemin_vers_ton_fichier_PHP" method="post">
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Tu peux tester ce code php ?
Et quand je dis tester .... tu remplis tes champs dans ton formulaire puis tu cliques sur ton bouton de submit....
<?php //---------------------------------------------------------------- //RECUPERATION DES VARIABLES POST //---------------------------------------------------------------- $action = isset($_POST['action']) ? $_POST['action'] : NULL; $register = isset($_POST['register'])?$_POST['register']:NULL; $nom = isset($_POST['nom'])?Security::clean($_POST['nom']):''; $prenom = isset($_POST['prenom'])?Security::clean($_POST['prenom']):''; $email = isset($_POST['email'])?Security::clean($_POST['email']):''; //---------------------------------------------------------------- // Le temps des tests ... echo "<br> Variables GET :"; print_r ($_GET); echo "<br> Variables POST :"; print_r ($_POST); //---------------------------------------------------------------- // SI SUBMIT DU FORMULAIRE : if isset($register){ switch($action){ case 'add': if($register) { $sql = "INSERT INTO tb_adherent (nom,prenom,email) VALUES(:nom,:prenom,:email)"; $req = $bdd->prepare($sql); $req->bindParam('nom', $nom, PDO::PARAM_STR); $req->bindParam('prenom', $prenom, PDO::PARAM_STR); $req->bindParam('email', $email, PDO::PARAM_STR); $donnees = $req->execute(); if($donnees) { echo 'OK'; }else{ echo 'ERREUR lors de l\'insertion'; } } else{ echo "<br> Error ! register =".$register ; } require_once 'add_user.php'; break; default: echo "<br> Error ! Action =".$action; break; } } ?>
Et quand je dis tester .... tu remplis tes champs dans ton formulaire puis tu cliques sur ton bouton de submit....
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
ça me renvoie cette erreur
Parse error: syntax error, unexpected T_ISSET, expecting '(' in C
à la ligne 21
if isset($register){
.........
Parse error: syntax error, unexpected T_ISSET, expecting '(' in C
à la ligne 21
if isset($register){
.........
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
alors ça me retourne toutes les variables entrer dans le formulaire mais dans la BDD absolument rien
ça me retourne en dessous des variables ça Error ! Action =
Vraiment très bizarre pour quelques chose de relativement simple en principe.
ça me retourne en dessous des variables ça Error ! Action =
Vraiment très bizarre pour quelques chose de relativement simple en principe.
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Voilà lorsque j'ai envoyé le formulaire
Variables GET :Array ( [body] => user [type] => admin )
Variables POST :Array ( [nom] => DUPOND[prenom] => Paul[email] => admin@yahoo.fr [send] => [register] => Enregistrer )
Error ! Action =
l'url
localhost/mon_site/index.php?body=user&type=admin
Variables GET :Array ( [body] => user [type] => admin )
Variables POST :Array ( [nom] => DUPOND[prenom] => Paul[email] => admin@yahoo.fr [send] => [register] => Enregistrer )
Error ! Action =
l'url
localhost/mon_site/index.php?body=user&type=admin
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Donc..tu n'as nul part de variable ACTION ....
d'où le problème. ....
ajoute dans ton formulaire html un input comme ceci :
d'où le problème. ....
ajoute dans ton formulaire html un input comme ceci :
<input type = "hidden" name="action" value="add">
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Bonjour
Malheureusement toujours aucun insert dans la BDD
Je te donne mon fichier complet
Merci
user.php
le retour
Malheureusement toujours aucun insert dans la BDD
Je te donne mon fichier complet
Merci
user.php
<?php //---------------------------------------------------------------- //RECUPERATION DES VARIABLES POST //---------------------------------------------------------------- $action = isset($_GET['action']) ? $_GET['action'] : NULL; $register = isset($_POST['register'])?$_POST['register']:NULL; $nom = isset($_POST['nom'])?Security::clean($_POST['nom']):''; $prenom = isset($_POST['prenom'])?Security::clean($_POST['prenom']):''; $email = isset($_POST['email'])?Security::clean($_POST['email']):''; //---------------------------------------------------------------- // Le temps des tests ... echo "<br> Variables GET :"; print_r ($_GET); echo "<br> Variables POST :"; print_r ($_POST); //---------------------------------------------------------------- // SI SUBMIT DU FORMULAIRE : if (isset($register)){ switch($action){ case 'add': if($register) { $sql = "INSERT INTO tb_adherent (nom,prenom,email) VALUES(:nom,:prenom,:email)"; $req = $bdd->prepare($sql); $req->bindParam(':nom', $nom, PDO::PARAM_STR); $req->bindParam(':prenom', $prenom, PDO::PARAM_STR); $req->bindParam(':email', $email, PDO::PARAM_STR); $donnees = $req->execute(); if($donnees) { echo 'OK'; }else{ echo 'ERREUR lors de l\'insertion'; } } else{ echo "<br> Error ! register =".$register ; } require_once 'add_user.php'; break; default: echo "<br> Error ! Action =".$action; break; } } ?> <div id="content"> <form id="formulaire" action="" method="post"> <fieldset> <legend>Ajouter un membre</legend> <table cellpadding="0" cellspacing="3"> <tr> <th colspan="6">Coordonné :</th> </tr> <tr> <td width="20%">Nom :</td> <td width="30%"><input name="nom" class="content_input" size="30" type="text" value=""/></td> <td width="20%">Prénom :</td> <td width="30%"><input name="prenom" class="content_input" size="30" type="text" value=""/></td> </tr> <tr> <td width="20%"><img src="image/mail.png" alt="Email" title="Email" height="22" width="22"/> Adresse mail :</td> <td width="30%"><input name="email" class="content_input" size="30" type="text" value=""/></td> <td width="20%"></td> <td width="30%"></td> </tr> </table> <input type = "hidden" name="action" value="add"/> <input type="submit" name="register" class="submit" value="Enregistrer"/> </fieldset> </form> </div>
le retour
Variables GET :Array ( [body] => user [type] => admin ) Variables POST :Array ( [nom] => DUPOND[prenom] => Paul[email] => admin@yahoo.fr [action] => add [register] => Enregistrer ) Error ! Action =
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Bonjour
He bien je t'ai suffisamment ennuyé, comme quoi il faut que j'apprenne à réfléchir un peu mieux.
En tout cas un grand merci et encore milles excuses, je n'aurai pas trouvé le fait qu'il fallait créé un input de type hidden pour créé l'action.
Merci
He bien je t'ai suffisamment ennuyé, comme quoi il faut que j'apprenne à réfléchir un peu mieux.
En tout cas un grand merci et encore milles excuses, je n'aurai pas trouvé le fait qu'il fallait créé un input de type hidden pour créé l'action.
Merci
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
On aurait pu aussi utiliser ton BOUTON
Mais dans ce cas ... deux choix :
Changer la valeur en "add" au lieu de "enregistrer"
Soit changer dans le switch : case:"enregistrer"
Et quoi qu'il en soit... dans la récup des variables POST .. action serait devenu
Voilou...
PS: Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
<input type="submit" name="register" class="submit" value="Enregistrer"/>
Mais dans ce cas ... deux choix :
Changer la valeur en "add" au lieu de "enregistrer"
Soit changer dans le switch : case:"enregistrer"
Et quoi qu'il en soit... dans la récup des variables POST .. action serait devenu
$action = isset($_POST['register']) ? $_POST['register'] : NULL;
Voilou...
PS: Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Bonjour
J'ai mis résolu, mais je viens de penser à une toute dernière question.
Je pensais à la validation du formulaire ça allait me renvoyer une Url de type
localhost/mon_site/index.php?action=add
Merci
J'ai mis résolu, mais je viens de penser à une toute dernière question.
Je pensais à la validation du formulaire ça allait me renvoyer une Url de type
localhost/mon_site/index.php?action=add
Merci
jordane45
- Messages postés
- 31184
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 24 janvier 2021
Et c'est quoi la question ?
Là.. tel que tu as écris ton code.. ton URL n'est pas modifiée .... elle conserve donc celle que tu as tel que tu arrives sur la page...
Là.. tel que tu as écris ton code.. ton URL n'est pas modifiée .... elle conserve donc celle que tu as tel que tu arrives sur la page...
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Alors en fait ça sert à quoi le nom du paramétre "action" et sa valeur add ?
J'essai juste de comprendre.
moi sur ma page du traitement du formulaire l'Url se décompose ainsi
/index.php?body=add_user&type=admin
et lorsque je valide le formulaire je pensais que ça me retournerai cette Url en fait..
index.php?action=add
Merci
J'essai juste de comprendre.
moi sur ma page du traitement du formulaire l'Url se décompose ainsi
/index.php?body=add_user&type=admin
et lorsque je valide le formulaire je pensais que ça me retournerai cette Url en fait..
index.php?action=add
Merci
troubadour3
- Messages postés
- 13
- Date d'inscription
- dimanche 6 mai 2012
- Statut
- Membre
- Dernière intervention
- 3 décembre 2014
Non les INSERT dans la BDD c'est tout bon comme je te l'ai dit mais je voulais simplement faire une redirection à cette adresse
index.php?action=add
en affichant 'Le nouveau membre à bien été enregistré !';"
alors je pensais faire comme ça mais le message ne s'affiche pas alors je voulais juste comprendre.
header(Location: ndex.php?action=add');
echo 'Le nouveau membre à bien été enregistré !';
index.php?action=add
en affichant 'Le nouveau membre à bien été enregistré !';"
alors je pensais faire comme ça mais le message ne s'affiche pas alors je voulais juste comprendre.
header(Location: ndex.php?action=add');
echo 'Le nouveau membre à bien été enregistré !';