Menu

Insertion de données variables dans une base mysql [Résolu]

Messages postés
12
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
31 décembre 2018
- - Dernière réponse : [Dal]
Messages postés
5169
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juillet 2019
- 16 août 2018 à 13:50
Bonjour à tous!
j'essaie d'insérer de nouvelles entrées dans ma base sql à partir de données variables récupérées à base d'un formulaire; et bien qu'aucune erreur ne s'affiche, les données ne sont pas enrégistrées dans la base de données.
j'ai besoin de votre aide.
Voici le code php mysql que j'ai saisi:

<?php try{$bdd = new PDO('mysql:host=localhost;dbname=réveil;charset=utf8', 'root', '',array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION));}catch(Exception $e){die('Erreur : '.$e->getMessage());} ?>

<?php $nom=$_POST['nom']; $prenom=$_POST['prenom']; $sexe=$_POST['sexe']; $naissance=$_POST['année']; $diplome=$_POST['diplome']; $metier= $_POST['metier'];
$pays=$_POST['pays']; $ville=$_POST['ville']; $code=$_POST['code_pays']; $phone=$_POST['phone']; $mail=$_POST['mail'];
$req = $bdd->prepare('INSERT INTO info_membres (Nom, Prénom, sexe, Date_de_naissance, Diplôme_professionnel, Métier_exercée, Pays, Ville, code_pays, Phone, Mail, Eglise, Statut_eglise, Année_conversion, Relation_Dieu, Motivations)
VALUES(:Nom, :Prénom, :sexe, :Date_de_naissance, :Diplôme_professionnel, :Métier_exercée, :Pays, :Ville, :code_pays, :Phone, :Mail, :Eglise, :Statut_eglise, :Année_conversion, :Relation_Dieu, :Motivations)');
$req->execute(array(
'Nom'=>$nom,
'Prénom'=>$prenom,
'sexe'=>$sexe,
'Date_de_naissance'=>$naissance,
'Diplôme_professionnel'=>$diplome,
'Métier_exercée'=>$metier,
'Pays'=>$pays,
'Ville'=>$ville,
'code_pays'=>$code,
'Phone'=>$phone,
'Mail'=>$mail));?>

Merci d'avance pour votre aide
Afficher la suite 

4 réponses

Messages postés
25977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
1717
0
Merci
Bonjour
Place ta requete dans un bloc try catch
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Retire les caractères accentués dans le nom de tes variables

Commenter la réponse de jordane45
Messages postés
3524
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
21 avril 2019
960
0
Merci
Bonjour, plusieurs conseils à te donner :
- Ta base de données et tes tables ne doivent pas avoir de caractères accentués (éèêëàä etc ...)
- Ne remplis jamais tes champs avec des données brutes (entrées directement par l'internaute) mais sécurises-les avant avec htmlspecialchars qui éviteras les injections sql et autres erreurs du genre.
jordane45
Messages postés
25977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
1717 -

Ne remplis jamais tes champs avec des données brutes (entrées directement par l'internaute) mais sécurises-les avant avec htmlspecialchars

Tous les débutants font cette erreur...... htmlspecialchar ne doit servir qu'à l'affichage. Aucunement pour le stockage des données.
Comme il utilise PDO et les requête préparées, le risque d'injection est déjà fortement limité. Donc si... on stocke les données Brut... toujours !
Commenter la réponse de tyranausor
Messages postés
12
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
31 décembre 2018
0
Merci
Meri a tous. j'ai retiré les accents dans ma base et ma table mais le pb est toujours pas réglé
jordane45
Messages postés
25977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
1717 > kmorel
Messages postés
12
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
31 décembre 2018
-
c'est ce qu'on appel l'écriture ternaire (une sorte de IF ELSE )
Le tout couplé à !empty pour s'assurer que la variable existe et n'est pas vide.
> jordane45
Messages postés
25977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
-
OK merci Jordan . je vais mieux me documenter dessus. j'ai testé le code que tu m'as send; le message d'erreur est plus clir et ça me dit que le champ Date_de_naissance ne peut être vide(Null). je fais quoi?
> jordane45
Messages postés
25977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juillet 2019
-
Jordan merci beaucoup pour ton aide. j'ai enfin trouvé la solution. les données s'enregistre maintenant normalement. Grand merci
yg_be
Messages postés
8075
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2019
398 > kmorel -
bonjour, peux-tu alors marquer le sujet comme résolu, via la roue dentée à droite du titre?
OK Je vois. je vais mieux me documenter dessus. j'ai testé le code que tu m'as send; le message d'erreur est plus clir et ça me dit que le champ Date_de_naissance ne peut être vide(Null). je fais quoi?
Commenter la réponse de kmorel
Messages postés
225
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
16 août 2018
0
Merci
Je croyais qu'il était interdit de faire des fichiers "discriminatoires" sur les religions , non ?
yg_be
Messages postés
8075
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2019
398 -
moi je croyais qu'il était interdit d'interdire.
heureusement, il est autorisé de croire!
[Dal]
Messages postés
5169
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juillet 2019
785 -
moi je croyais qu'il était interdit d'interdire.

oui, et sous les pavés, la plage ;-)

heureusement, il est autorisé de croire!

Oui, bien sûr.

Sur l'intervention de jadu, je pense qu'il parle de ceci : https://www.cnil.fr/fr/reglement-europeen-protection-donnees/chapitre2#Article9

Il faut avoir de bonnes raisons pour que la collecte et le traitement de données sur les convictions religieuses soit permis, qui sont listées par ce texte (qui , en principe l'interdit, sauf si une ou plusieurs des exceptions prévues s'applique(nt)).

Quand à nous, en répondant sur ce sujet, on est face à un dilemme : le forum CCM n'est pas sensé porter assistance à des personnes enfreignant la loi ou ayant l'intention de le faire (cf. demande d'assistance à piratage, etc.), et donc il n'est pas absurde de de renseigner sur les motivations d'une personne posant des questions techniques tendancieuses, d'un autre côté les discussions juridiques sont, elles-aussi hors charte, ce type discussions n'étant pas l'objet du forum.

Pour clore là dessus, si on se résume : c'est interdit en principe, mais il y a des exception, et c'est le problème de kmorel de vérifier lui-même, ou avec l'assistance d'un juriste qu'il est dans un cadre légal en faisant ce qu'il fait :-)

Dal
Commenter la réponse de jadu