BDD non remplie, sans message d'erreur
Résolu
salutcoucou
Messages postés
11
Statut
Membre
-
salutcoucou Messages postés 11 Statut Membre -
salutcoucou Messages postés 11 Statut Membre -
Bonjour à tous. Je crée un formulaire d'inscription à mon association. Lorsque je remplie le formulaire, aucun message d'erreur n'apparaît, mais ma BDD reste vide. Voici mon code, merci d'avance pour vos réponse
<form action="" method="POST">
<div id="Nom">
<input type="text" name="Nom" placeholder="Nom" required="">
</div>
<div id="Prenom">
<input type="text" name="Prenom" placeholder="Prenom" required="">
</div>
<div id="Valider">
<input type="submit" value="Valider">
</div>
<div id="Adresse">
<input type="text" name="Adresse" placeholder="Adresse" required="">
</div>
<div id="Civilite">
<select name="Civilite" id="Civilite">
<option value="Monsieur">Monsieur</option>
<option value="Madame">Madame</option>
</select>
</div>
<div id="Mail">
<input type="email" name="Mail" placeholder="Adresse mail" required="">
</div>
<div id="tel">
<input type="tel" name="tel" placeholder="Numero de telephone" required="">
</div>
<div id="profession">
<input type="text" name="profession" placeholder="Profession" required="">
</div>
</form>
<?php
$bdd = new PDO("mysql:host=localhost;dbname=graines_de_seine", "root", "");
if (isset($_POST['civilite']) AND isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['adresse']) AND isset($_POST['adressemail']) AND isset($_POST['telephone']) AND isset($_POST['profession']))
$civilite = isset($_POST['Civilite']) ? $_POST['Civilite'] : NULL;
$nom = isset($_POST['nom']) ? $_POST['nom'] : NULL;
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : NULL;
$adresse = isset($_POST['adresse']) ? $_POST['adresse'] : NULL;
$adressemail = isset($_POST['adressemail']) ? $_POST['adressemail'] : NULL;
$telephone = isset($_POST['telephone']) ? $_POST['telephone'] : NULL;
$profession = isset($_POST['profession']) ? $_POST['profession'] : NULL;
$insertmbr = $bdd->prepare("INSERT INTO formulaire(civilite, nom, prenom, adresse, adressemail, telephone, profession) VALUES(?, ?, ?, ?, ?, ?, ?)");
$insertmbr->execute(array($civilite, $nom, $prenom, $adresse, $adressemail, $telephone, $profession));
?>
EDIT : AJOUT DES BALISES DE CODE
A voir également:
- BDD non remplie, sans message d'erreur
- Recuperer message whatsapp supprimé - Guide
- Message absence thunderbird - Guide
- Message supprimé whatsapp - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
1 réponse
Bonjour,
1 - Affiche l'activation des erreurs PHP
2 - Active la gestion des erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
3 - Places des ECHO dans ton code (dans ton IF par exemple pour voir si tu rentres bien dedans) et fais éventuellement un
En suivant ces 3 points tu devrais être en mesure de trouver ton erreur...
Si tu n'y arrives pas... et bien :
4 - Et enfin... la solution à ton souci :
Vu que dans ton IF tu regardes si les variables existent (par exemple isset($_POST['prenom']) )
Et que dans ton formulaire HTML tu as mis :
Prenom <> prenom
donc tu ne rentres jamais dans ton if ....;
1 - Affiche l'activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors',1);
2 - Active la gestion des erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
3 - Places des ECHO dans ton code (dans ton IF par exemple pour voir si tu rentres bien dedans) et fais éventuellement un
print_r($_POST);en début de ton code pour voir ce qu'envoie ton formulaire
En suivant ces 3 points tu devrais être en mesure de trouver ton erreur...
Si tu n'y arrives pas... et bien :
4 - Et enfin... la solution à ton souci :
Vu que dans ton IF tu regardes si les variables existent (par exemple isset($_POST['prenom']) )
Et que dans ton formulaire HTML tu as mis :
<input type="text" name="Prenom" placeholder="Prenom" required="">
Prenom <> prenom
donc tu ne rentres jamais dans ton if ....;
1 - Place le code de connexion à ta BDD dans un fichier à part que tu n'auras plus qu'à inclure dans tes différentes pages au lieu de le réécrire à chaque fois
<?php // fichier de connexion à la BDD : cnxBdd.php try{ $bdd = new PDO('mysql:host=localhost;dbname=graines_de_seine; charset=utf8', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>2 - Le reste de ton code
NB: On place le PHP en début de code en général... AVANT le HTML.
Cela le rend plus lisible... surtout lorsque tu auras des pages web avec 500 lignes :-)
<?php //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors',1); // Connexion à la bdd require_once "cnxBdd.php"; //récupération "propre" des variables AVANT de les utiliser $civilite = isset($_POST['Civilite']) ? $_POST['Civilite'] : NULL; $nom = isset($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : NULL; $adresse = isset($_POST['adresse']) ? $_POST['adresse'] : NULL; $adressemail = isset($_POST['adressemail']) ? $_POST['adressemail'] : NULL; $telephone = isset($_POST['telephone']) ? $_POST['telephone'] : NULL; $profession = isset($_POST['profession']) ? $_POST['profession'] : NULL; //traitement du formulaire if ($civilite && $nom && $prenom && $adresse && $adressemail && $telephone && $profession){ //préparation de la requête et des variables $sql = "INSERT INTO formulaire(civilite, nom, prenom, adresse, adressemail, telephone, profession) VALUES(?, ?, ?, ?, ?, ?, ?)"; $datas = array($civilite, $nom, $prenom, $adresse, $adressemail, $telephone, $profession); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <form action="" method="POST"> <div id="div_nom"> <input type="text" name="nom" placeholder="Nom" required=""> </div> <div id="div_prenom"> <input type="text" name="prenom" placeholder="Prenom" required=""> </div> <div id="div_adresse"> <input type="text" name="adresse" placeholder="Adresse" required=""> </div> <div id="div_Civilite"> <select name="Civilite" id="Civilite"> <option value="Monsieur">Monsieur</option> <option value="Madame">Madame</option> </select> </div> <div id="adressemail"> <input type="email" name="adressemail" placeholder="Adresse mail" required=""> </div> <div id="telephone"> <input type="tel" name="telephone" placeholder="Numero de telephone" required=""> </div> <div id="profession"> <input type="text" name="profession" placeholder="Profession" required=""> </div> <div id="div_Valider"> <input type="submit" value="Valider"> </div> </form>Merci beaucoup, ça fonctionne !!!
:)