Insertion de données variables dans une base mysql
Résolu/Fermé
kmorel
Messages postés
13
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
22 octobre 2019
-
30 juil. 2018 à 13:15
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 16 août 2018 à 13:50
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 16 août 2018 à 13:50
A voir également:
- Insertion de données variables dans une base mysql
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Insertion liste déroulante excel - Guide
- Formules excel de base - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
4 réponses
jordane45
Messages postés
38406
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 février 2025
4 732
30 juil. 2018 à 13:38
30 juil. 2018 à 13:38
Bonjour
Place ta requete dans un bloc try catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Retire les caractères accentués dans le nom de tes variables
Place ta requete dans un bloc try catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Retire les caractères accentués dans le nom de tes variables
tyranausor
Messages postés
3545
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
1 avril 2022
2 035
30 juil. 2018 à 13:46
30 juil. 2018 à 13:46
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.
- 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
38406
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 février 2025
4 732
30 juil. 2018 à 14:04
30 juil. 2018 à 14:04
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 !
kmorel
Messages postés
13
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
22 octobre 2019
30 juil. 2018 à 15:14
30 juil. 2018 à 15:14
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
38406
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 février 2025
4 732
30 juil. 2018 à 16:12
30 juil. 2018 à 16:12
As tu également suivi les consignes que je t'ai donné ?
As tu mis le try/catch à ta requête ?
Montre ton code modifié !
As tu mis le try/catch à ta requête ?
Montre ton code modifié !
kmorel
Messages postés
13
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
22 octobre 2019
Modifié le 30 juil. 2018 à 17:49
Modifié le 30 juil. 2018 à 17:49
oui Jordan je 'ai fait mais ca me signale une erreur au ivrau du '"{" qu'il ya juste devant le catch.
voici la requête avec le catch:
EDIT : Ajout des balises de code !
voici la requête avec le catch:
<?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']; $eglise=$_POST['eglise']; $statut=$_POST['statut_eglise']; $conversion=$_POST['conversion']; $relation=$_POST['relation']; $objectif=$_POST['objectif']; try{ $req = $bdd->prepare('INSERT INTO info_membres (Nom, Prenom, sexe, Date_de_naissance, Diplome_professionnel, Metier_exercee, Pays, Ville, code_pays, Phone, Mail, Eglise, Statut_eglise, Annee_conversion, Relation_Dieu, Motivations) VALUES(:Nom, :Prenom, :sexe, :Date_de_naissance, :Diplome_professionnel, :Metier_exercee, :Pays, :Ville, :code_pays, :Phone, :Mail, :Eglise, :Statut_eglise, :Annee_conversion, :Relation_Dieu, :Motivations)'); $req->execute(array( 'Nom'=>$nom, 'Prenom'=>$prenom, 'sexe'=>$sexe, 'Date_de_naissance'=>$naissance, 'Diplome_professionnel'=>$diplome, 'Metier_exercee'=>$metier, 'Pays'=>$pays, 'Ville'=>$ville, 'code_pays'=>$code, 'Phone'=>$phone, 'Mail'=>$mail, 'Eglise'=>$eglise, 'Statut_eglise'=>$statut, 'Annee_conversion'=>$conversion, 'Relation_Dieu'=>$relation, 'Motivations'=>$objectif)) }catch(Exception $e);?>
EDIT : Ajout des balises de code !
jordane45
Messages postés
38406
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 février 2025
4 732
30 juil. 2018 à 17:57
30 juil. 2018 à 17:57
<?php $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL; $sexe= !empty($_POST['sexe']) ? $_POST['sexe'] : NULL; $naissance= !empty($_POST['annee']) ? $_POST['annee'] : NULL; $diplome= !empty($_POST['diplome']) ? $_POST['diplome'] : NULL; $metier= !empty($_POST['metier']) ? $_POST['metier'] : NULL; $pays= !empty($_POST['pays']) ? $_POST['pays'] : NULL; $ville= !empty($_POST['ville']) ? $_POST['ville'] : NULL; $code= !empty($_POST['code_pays']) ? $_POST['code_pays'] : NULL; $phone= !empty($_POST['phone']) ? $_POST['phone'] : NULL; $mail= !empty($_POST['mail']) ? $_POST['mail'] : NULL; $eglise= !empty($_POST['eglise']) ? $_POST['eglise'] : NULL; $statut= !empty($_POST['statut_eglise']) ? $_POST['statut_eglise'] : NULL; $conversion= !empty($_POST['conversion']) ? $_POST['conversion'] : NULL; $relation= !empty($_POST['relation']) ? $_POST['relation'] : NULL; $objectif= !empty($_POST['objectif']) ? $_POST['objectif'] : NULL; $sql = 'INSERT INTO info_membres (Nom, Prenom, sexe, Date_de_naissance, Diplome_professionnel, Metier_exercee, Pays, Ville, code_pays, Phone, Mail, Eglise, Statut_eglise, Annee_conversion, Relation_Dieu, Motivations) VALUES(:Nom, :Prenom, :sexe, :Date_de_naissance, :Diplome_professionnel, :Metier_exercee, :Pays, :Ville, :code_pays, :Phone, :Mail, :Eglise, :Statut_eglise, :Annee_conversion, :Relation_Dieu, :Motivations)'; $datas = array(':Nom'=>$nom, ':Prenom'=>$prenom, ':sexe'=>$sexe, ':Date_de_naissance'=>$naissance, ':Diplome_professionnel'=>$diplome, ':Metier_exercee'=>$metier, ':Pays'=>$pays, ':Ville'=>$ville, ':code_pays'=>$code, ':Phone'=>$phone, ':Mail'=>$mail, ':Eglise'=>$eglise, ':Statut_eglise'=>$statut, ':Annee_conversion'=>$conversion, ':Relation_Dieu'=>$relation, ':Motivations'=>$objectif ); try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage(); } ?>
EDIT : A l'avenir, merci d'utiliser LES BALISES DE CODE pour poster ton code sur le forum !
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
kmorel
Messages postés
13
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
22 octobre 2019
30 juil. 2018 à 18:07
30 juil. 2018 à 18:07
ok Jordan. Merci beaucoup pour ton aide.
mais ouh laaaa! c'est du chinois tes 17 premières lignes. tu veux bien m'expliquer un peu?
mais ouh laaaa! c'est du chinois tes 17 premières lignes. tu veux bien m'expliquer un peu?
jordane45
Messages postés
38406
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 février 2025
4 732
>
kmorel
Messages postés
13
Date d'inscription
lundi 30 juillet 2018
Statut
Membre
Dernière intervention
22 octobre 2019
30 juil. 2018 à 18:12
30 juil. 2018 à 18:12
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.
Le tout couplé à !empty pour s'assurer que la variable existe et n'est pas vide.
jadu
Messages postés
217
Date d'inscription
mercredi 26 juillet 2006
Statut
Membre
Dernière intervention
16 août 2018
Modifié le 16 août 2018 à 11:20
Modifié le 16 août 2018 à 11:20
Je croyais qu'il était interdit de faire des fichiers "discriminatoires" sur les religions , non ?
yg_be
Messages postés
23462
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 février 2025
1 567
16 août 2018 à 12:09
16 août 2018 à 12:09
moi je croyais qu'il était interdit d'interdire.
heureusement, il est autorisé de croire!
heureusement, il est autorisé de croire!
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
16 août 2018 à 13:50
16 août 2018 à 13:50
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
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