Récupéré information formulaire: Pas d'inscription WAMP
Résolu/Fermé
EinsteinE=mc2
-
16 mai 2016 à 14:11
EinsteinE=mc2 Messages postés 40 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 19 octobre 2017 - 17 mai 2016 à 01:06
EinsteinE=mc2 Messages postés 40 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 19 octobre 2017 - 17 mai 2016 à 01:06
A voir également:
- Récupéré information formulaire: Pas d'inscription WAMP
- Information d'identification réseau - Guide
- Formulaire de réclamation facebook - Guide
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum Bureautique
- Lcfc debug page information - Forum BIOS
- Récupérer compte hotmail sans formulaire ✓ - Forum Hotmail / Outlook.com
13 réponses
NHenry
Messages postés
15113
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 avril 2024
331
16 mai 2016 à 14:25
16 mai 2016 à 14:25
Affiche la requête générée et essayes-la dans PhpMyAdmin;.
Bonjour Nhenry,
Merci pour ton temps , Voici ce que j'ai obtenu :
Erreur
Requête SQL :
INSERT INTO utilsateur(Civilite, Nom, Prenom, Pays, email, Utilisateur_mdp) VALUES ('"uuuu"','"hhhhh"','"hhhhh"','"fra"','"ggvgvgvg"','"jnnnjbbcc"')
MySQL a répondu: Documentation
#1146 - La table 'utilisateurs.utilsateur' n'existe pas
Merci pour ton temps , Voici ce que j'ai obtenu :
Erreur
Requête SQL :
INSERT INTO utilsateur(Civilite, Nom, Prenom, Pays, email, Utilisateur_mdp) VALUES ('"uuuu"','"hhhhh"','"hhhhh"','"fra"','"ggvgvgvg"','"jnnnjbbcc"')
MySQL a répondu: Documentation
#1146 - La table 'utilisateurs.utilsateur' n'existe pas
NHenry
Messages postés
15113
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 avril 2024
331
16 mai 2016 à 14:43
16 mai 2016 à 14:43
Si le problème est résolu, merci de cliquer sur "Marquer comme résolu"
Petite remarque, essayes de mettre un ' dans un champ et ensuite intéresses-toi aux injections SQL.
Petite remarque, essayes de mettre un ' dans un champ et ensuite intéresses-toi aux injections SQL.
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 14:54
16 mai 2016 à 14:54
je suis débutant Nhenry , je comprend pas tout ce que tu dis ....
NHenry
Messages postés
15113
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 avril 2024
331
16 mai 2016 à 16:59
16 mai 2016 à 16:59
Une injection SQL est une "attaque" consistant à détourner une requête SQL en modifiant son contenu.
Par exemple, une ' dans un mon cassera ta requête SQL.
Dans ce cas, il te faut soit échapper les chaines d'entrée soit utiliser une requête paramétrée.
Recherches un peu sur le net.
Par exemple, une ' dans un mon cassera ta requête SQL.
Dans ce cas, il te faut soit échapper les chaines d'entrée soit utiliser une requête paramétrée.
Recherches un peu sur le net.
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 15:27
16 mai 2016 à 15:27
help personne
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
Modifié par jordane45 le 16/05/2016 à 21:47
Modifié par jordane45 le 16/05/2016 à 21:47
Bonjour,
Déjà .. on sépare la connexion de la BDD dans un fichier à part
pour éviter de devoir la copier/coller partout...
Donc :
Ensuite, on récupère PROPREMENT les variables AVANT de les utiliser.
Pour cela, on va utiliser l'écriture ternaire avec ISSET (ou !EMPTY selon nos préférences)
Puis, pour éviter les erreurs d'injection SQL, on va utiliser les requêtes préparées.
Pour finir, on ajoute des blocs TRY/CATCH pour intercepter les éventuelles erreurs.
Cordialement,
Jordane
Déjà .. on sépare la connexion de la BDD dans un fichier à part
pour éviter de devoir la copier/coller partout...
Donc :
<?php //Fichier cnxBdd.php try{ $db = new PDO('mysql:host=localhost;dbname=utilisateurs'=>'root'); // connexion à la base de donnée }catch(Exception $e){ echo "<br>Erreur lors de la connexion à la bdd !".$e->getMessage(); }
Ensuite, on récupère PROPREMENT les variables AVANT de les utiliser.
Pour cela, on va utiliser l'écriture ternaire avec ISSET (ou !EMPTY selon nos préférences)
Puis, pour éviter les erreurs d'injection SQL, on va utiliser les requêtes préparées.
Pour finir, on ajoute des blocs TRY/CATCH pour intercepter les éventuelles erreurs.
<?php //Affichage des erreurs PHP error_reporting(E_ALL); //Démarrage des Sessions session_start(); //connexion à la BDD require_once "cnxBdd.php"; // Récupération PROPRE des variables AVANT de les utiliser $Civilite = isset($_POST["civility"]) ? $_POST["civility"] : ''; $Nom = !empty($_POST["lastname"]) ? $_POST["lastname"] : ''; $Prenom = isset($_POST["firstname"]) ? $_POST["firstname"] : ''; $Pays = isset($_POST["country"]) ? $_POST["country"] : ''; $email = isset($_POST["mail"]) ? $_POST["mail"] : ''; $Utilisateur_mdp = isset($_POST["pass"]) ? $_POST["pass"] : ''; //traitement du Submit if (isset($_POST['Valider'])){ //préparation de la requête $sql = "INSERT INTO utilsateur(Civilite, Nom, Prenom, Pays, email, Utilisateur_mdp) VALUES (:Civilite,:Nom,:Prenom,:Pays,:email,:Utilisateur_mdp)"; $variables = array(':Civilite'=>$Civilite ,':Nom'=>$Nom ,':Prenom'=>$Prenom ,':Pays'=>$Pays ,':email'=>$email ,':Utilisateur_mdp' =>$Utilisateur_mdp); //exécution de la requete try{ $requete= $db->prepare($sql); $requete->execute($variables); //Si tu as mis un champ auto-incrementé dans ta table // tu peux même récupérer l'ID sur lequel aura été inséré ta ligne $id = $db->lastInsertId(); $_SESSION["id_user"] = $id; $_SESSION["utilisateur"]= $Prenom ;// Permet de garder la connexion active de page en page echo 'Enregistrement effectué!'; }catch(Exception $e){ echo "<br>Erreur :".$e->getMessage(); print_r($variables);//en cas d'erreur, affichage des variables } } else{ echo 'buggggggggggggg'; }
Cordialement,
Jordane
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
16 mai 2016 à 21:43
16 mai 2016 à 21:43
NB: Je viens de voir que tu avais nommé ta BDD : utilisateurs ? .. j'espère que tu ne confond pas BASE de données.. et TABLE.
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 21:45
16 mai 2016 à 21:45
Merci pour ta réponse Jordan !!! Non ma base de donnée s'appellent utilisateurs avec un s et ma table utilisateur au singulier :)
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
16 mai 2016 à 21:47
16 mai 2016 à 21:47
Je viens de faire une petite correction au niveau de la requête.
Reprend cette dernière version. (j'ai édité mon message précédent)
Reprend cette dernière version. (j'ai édité mon message précédent)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
Modifié par EinsteinE=mc2 le 16/05/2016 à 21:49
Modifié par EinsteinE=mc2 le 16/05/2016 à 21:49
Je vais tester avec les modif que tu a fait mais je comprend pas bien ton fichier cnxBDD.php . C'est pour la connexion à la base de donnée mais comment je fais appel à celui-ci ?
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 21:50
16 mai 2016 à 21:50
Excuse moi je vient de voir la ligne correspondante autant pour moi ! Je teste illico
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 22:03
16 mai 2016 à 22:03
Alors j'ai une erreur :(
( ! ) Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\wamp\www\WELLDRESSED\cnxBDD.php on line 4
cela correspond à cette ligne
( ! ) Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\wamp\www\WELLDRESSED\cnxBDD.php on line 4
cela correspond à cette ligne
$db = new PDO('mysql:host=localhost;dbname=utilisateurs'=>'root'); // connexion à la base de donnée
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
16 mai 2016 à 22:06
16 mai 2016 à 22:06
Et oui...
verifie bien comment se connecter à une bdd en pdo...
j'ai juste copier ton code... mais il est faut.
verifie bien comment se connecter à une bdd en pdo...
j'ai juste copier ton code... mais il est faut.
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
16 mai 2016 à 22:07
16 mai 2016 à 22:07
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
16 mai 2016 à 22:08
16 mai 2016 à 22:08
Ah non. Au temps pour moi.. c'est mon copier/remplacer qui a fait ça
vire le => et remplace par une virgule.
vire le => et remplace par une virgule.
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
16 mai 2016 à 22:09
16 mai 2016 à 22:09
Par contre il te manque le password (a vide si tu n'en as pas mis)
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 22:37
16 mai 2016 à 22:37
Donc c'est corriger par contre au niveau du if il y a un problème car il me renvoit vert le else et donc sa affiche bugg :/
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
16 mai 2016 à 22:58
16 mai 2016 à 22:58
Sans voir le code de ton formulaire. .. impossible de t'aider
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 23:10
16 mai 2016 à 23:10
<div id=droite_formu> <form method="post" id="inscriptionform" action="inscription.php"> <fieldset> <legend> Inscription: </legend> <p > <label> Civilité<span> *</span></label> <select name="civility"> <option value='1' >Mme</option> <option value='2' selected>MR</option> /* selection par défaut*/ </select> <div id="nickname-element"> <label>Nom<span> *</span></label> <input id="nickname" type="text" name="lastname" value=""> <span id="nickname-info"></span> </div> <label>Prénom<span> *</span></label> <input type="text" name="firstname" value=""> <label>Pays<span> *</span></label> <div class="select"> <select name="country"> <option value="AF">Afghanistan</option><option value="ZA">Afrique du Sud</option><option value="AL">Albanie</option><option value="DZ">Algérie</option><option value="DE">Allemagne</option><option value="AD">Andorre</option><option value="AO">Angola</option><option value="AI">Anguilla</option> </select> </div> <label>Adresse e-mail<span> *</span></label> <input type="text" name="mail" value=""> <label>Mot de passe<span> *</span></label> <input type="password" name="pass" value=""> </br> </br> </fieldset> <input type="submit" value="Valider" name="valider"> </form> </div>
Du coup j'ai pas mis tous les pays par contre c'était trop long...
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 23:11
16 mai 2016 à 23:11
Désolé pour l’indentation....
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 23:17
16 mai 2016 à 23:17
Dans ton fichier inscription.php , peux tu mettre avant le IF un
et nous dire ce que ça donne lorsque tu valides ton formulaire ?
print_r($_POST);
et nous dire ce que ça donne lorsque tu valides ton formulaire ?
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
Modifié par EinsteinE=mc2 le 16/05/2016 à 23:23
Modifié par EinsteinE=mc2 le 16/05/2016 à 23:23
(c'est super cool d’essayer débugger le code avec moi )
Voilà ce que ça me donne une fois le formulaire validé
Array ( [civility] => 2 [lastname] => david [firstname] => jean [country] => FR [mail] => david@gmail.com [pass] => vffggg [valider] => Valider ) buggggggggggggg
Voilà ce que ça me donne une fois le formulaire validé
Array ( [civility] => 2 [lastname] => david [firstname] => jean [country] => FR [mail] => david@gmail.com [pass] => vffggg [valider] => Valider ) buggggggggggggg
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 23:27
16 mai 2016 à 23:27
Humm.. bizarre....
Essaye de remplacer
par :
Essaye de remplacer
if (isset($_POST['Valider'])){
par :
if ($Nom){
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
16 mai 2016 à 23:40
16 mai 2016 à 23:40
J'obtiens cette erreur :
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\WELLDRESSED\inscription.php on line 37
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\WELLDRESSED\inscription.php on line 37
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:31
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:31
Bon alors la j'ai plus d'erreur déja mais un bon point mais il y a un souci :
- Je n'ai pas d'entrée dans ma base de donnée , les seuls qui y sont sont des utilisateurs test que j'ai rentré moi-même à la main.
- Je n'ai pas d'entrée dans ma base de donnée , les seuls qui y sont sont des utilisateurs test que j'ai rentré moi-même à la main.
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:27
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:27
Bon alors la j'ai plus d'erreur déja mais un bon point mais il y a un souci :
- je n'ai pas d'entrée dans ma base de donnée , les seuls qui y sont sont des utilisateurs que j'ai rentré moi-même à la main
- je n'ai pas d'entrée dans ma base de donnée , les seuls qui y sont sont des utilisateurs que j'ai rentré moi-même à la main
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:28
Modifié par EinsteinE=mc2 le 17/05/2016 à 00:28
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
17 mai 2016 à 00:25
17 mai 2016 à 00:25
J'ai mis des mot au hazard dans les cases du formulaire fait pas attention c'était juste pour tester...
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
Modifié par jordane45 le 17/05/2016 à 00:45
Modifié par jordane45 le 17/05/2016 à 00:45
On va modifier le fichier de connexion à la bdd
de base, les Exceptions ne sont pas activées (pour afficher les erreurs)
Cordialement,
Jordane
de base, les Exceptions ne sont pas activées (pour afficher les erreurs)
<?php //Fichier cnxBdd.php try{ $db = new PDO('mysql:host=localhost;dbname=utilisateurs'=>'root'); // connexion à la base de donnée $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ echo "<br>Erreur lors de la connexion à la bdd !".$e->getMessage(); } ?>
Cordialement,
Jordane
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
17 mai 2016 à 00:47
17 mai 2016 à 00:47
Et dans le code de ta page,
tu vas ajouté un echo de $id
En modifiant la ligne
par :
tu vas ajouté un echo de $id
En modifiant la ligne
echo 'Enregistrement effectué!';
par :
echo 'Enregistrement effectué ! <b>ID:</b> = '.$id;
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
17 mai 2016 à 00:56
17 mai 2016 à 00:56
T'es un génie !!!!! :D :D :D j'ai plus sommeil tellement je suis content lol
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
17 mai 2016 à 00:58
17 mai 2016 à 00:58
T'es un génie
Ah ? ... mais par contre je n'ai plus de lampe à frotter.. :-)
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
17 mai 2016 à 01:00
17 mai 2016 à 01:00
En fait quand j'ai modifié le fichier de connexion à la bdd pour affiché les erreurs , il m'a dit dit qu'il ne trouvais pas la table ce qui était normal puisque si tu regarde le code plus haut j'ai mis utilsateur au lieu de utilisateur donc j'ai modifié cela et BIMM cela a fonctionné
Bon c'était un problème de c** en soit :') mais c'est la méthode de débuggage qui est cool
Bon c'était un problème de c** en soit :') mais c'est la méthode de débuggage qui est cool
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
17 mai 2016 à 01:04
17 mai 2016 à 01:04
Et maintenant... tu as un code "propre".
Tiens en compte pour tes prochains dev.
Bonne soirée.
Tiens en compte pour tes prochains dev.
Bonne soirée.
EinsteinE=mc2
Messages postés
40
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
19 octobre 2017
17 mai 2016 à 01:06
17 mai 2016 à 01:06
Yes merci beaucoup . Bonne soirée !