Récupéré information formulaire: Pas d'inscription WAMP
Résolu
EinsteinE=mc2
-
EinsteinE=mc2 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
EinsteinE=mc2 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Merci à ceux qui prendront un moment pour m'aider.
Je suis débutant en php et je souhaite récupérer des données d'un formulaire d'inscription à mettre dans ma base de donnée PHPMYADMIN (WAMP). J'ai un souci c'est que ma requête passe, je n'ai pas d'erreur cependant rien ne s'inscrit dans ma base et j'arrive sur un écran blanc sans mon echo qui s'affiche ( j'avais mis echo 'Enregistrement effectué!' . J'ai bien fait un session start sur mon autre fichier php . Je ne voit pas ou ça bloque. :??: :??: :??: :??:
Voici mon code:
Merci à ceux qui prendront un moment pour m'aider.
Je suis débutant en php et je souhaite récupérer des données d'un formulaire d'inscription à mettre dans ma base de donnée PHPMYADMIN (WAMP). J'ai un souci c'est que ma requête passe, je n'ai pas d'erreur cependant rien ne s'inscrit dans ma base et j'arrive sur un écran blanc sans mon echo qui s'affiche ( j'avais mis echo 'Enregistrement effectué!' . J'ai bien fait un session start sur mon autre fichier php . Je ne voit pas ou ça bloque. :??: :??: :??: :??:
Voici mon code:
<?php session_start(); if (isset($_POST['Valider'])) // appui sur bouton { $Civilite=$_POST["civility"]; $Nom=$_POST["lastname"]; $Prenom=$_POST["firstname"]; $Pays=$_POST["country"]; $email=$_POST["mail"]; $Utilisateur_mdp=$_POST["pass"]; $db = new PDO('mysql:host=localhost;dbname=utilisateurs','root'); // connexion à la base de donnée $requete= $db->prepare("INSERT INTO utilsateur(Civilite, Nom, Prenom, Pays, email, Utilisateur_mdp) VALUES ('".$Civilite."','".$Nom."','".$Prenom."','".$Pays."','".$email."','".$Utilisateur_mdp."')"); $requete->execute(); $_SESSION["utilisateur"]= $_POST["Prenom"];// Permet de garder la connexion active de page en page echo 'Enregistrement effectué!'; else { echo 'buggggggggggggg'; }
A voir également:
- Récupéré information formulaire: Pas d'inscription WAMP
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Information d'identification réseau - Guide
- Formulaire de reclamation instagram - Guide
- Hidden information marketplace c'est quoi ✓ - Forum HTML
13 réponses
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?
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
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 :/
<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...
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.
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
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
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