Problème intégration dans la base de données
Résolu/Fermé
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
-
Modifié par Lucryio le 4/01/2014 à 18:46
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 5 janv. 2014 à 19:53
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 5 janv. 2014 à 19:53
A voir également:
- Problème intégration dans la base de données
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Formules excel de base - Guide
- La zone de données passée à un appel système est insuffisante - Windows 11
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Base de registre - Guide
5 réponses
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
5 janv. 2014 à 17:32
5 janv. 2014 à 17:32
Hello,
as-tu essayé de faire un var_dump($mot_de_passe) ?
A priori il dit qu'il n'existe pas de clef MDP dans ton tableau $mot_de_passe ...
as-tu essayé de faire un var_dump($mot_de_passe) ?
A priori il dit qu'il n'existe pas de clef MDP dans ton tableau $mot_de_passe ...
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 17:49
5 janv. 2014 à 17:49
je doit le mettre ou ce "var_dump(mot_de_passe)" ? comment adapter mon code ?
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
Modifié par ryko1820 le 5/01/2014 à 18:26
Modifié par ryko1820 le 5/01/2014 à 18:26
Tu peux aussi rajouter un die(); juste après
Avant ton "$bdd->exec " :
Ce n'est pas pour corriger ton code, c'est pour t'aider à comprendre ton erreur (déboguer), tu verras que dans ton tableau $mot_de_passe il n'y a pas de clef 'MDP' ... C'est ce que te dis le message d'erreur ... A toi ensuite d'en tirer les conséquences.
Une fois trouvée l'erreur tu pourras effacer le var_dump et le die ....
You may stop me but you can't stop us all ;-)
Avant ton "$bdd->exec " :
var_dump($mot_de_passe); die(); $bdd->exec('INSERT INTO mdpgeneres VALUES("", "'.$mot_de_passe['MDP'].'")'); return $mot_de_passe; }
Ce n'est pas pour corriger ton code, c'est pour t'aider à comprendre ton erreur (déboguer), tu verras que dans ton tableau $mot_de_passe il n'y a pas de clef 'MDP' ... C'est ce que te dis le message d'erreur ... A toi ensuite d'en tirer les conséquences.
Une fois trouvée l'erreur tu pourras effacer le var_dump et le die ....
You may stop me but you can't stop us all ;-)
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 18:27
5 janv. 2014 à 18:27
Je suis pas à l'aise avec les base de données c'est pour ça que je demande de l'aide et à vrai dire tous ce qui touche sur les base, je comprend pas trop.
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
5 janv. 2014 à 18:32
5 janv. 2014 à 18:32
La déjà c'est la valeur que tu essayes d'insérer qui a un problème, php la trouve pas, si tu faisais simplement un
tu aurais exactement la même erreur. Bon sauf le numéro de ligne :p
echo $mot_de_passe['MDP'];
tu aurais exactement la même erreur. Bon sauf le numéro de ligne :p
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 18:44
5 janv. 2014 à 18:44
mais pourtant ma variable $mot_de_passe éxiste et ma colonne "MDP" éxiste aussi. donc je comprend pas que ça fonctionne pas en faite ^^
"MDP" c'est une colonne de ma base et $mot_de_passe est ma variable qui contien le mot de passe (code) généré.
Donc je comprend pas sachant qu'en plus, il trouve bien MDP dans ma base puisqu'il enregistre le 1er caractère du code généré uniquement.
Moi ce que j'aimerais c'est qu'il enregistre tous le codes et non seulement le 1er caractère.
"MDP" c'est une colonne de ma base et $mot_de_passe est ma variable qui contien le mot de passe (code) généré.
Donc je comprend pas sachant qu'en plus, il trouve bien MDP dans ma base puisqu'il enregistre le 1er caractère du code généré uniquement.
Moi ce que j'aimerais c'est qu'il enregistre tous le codes et non seulement le 1er caractère.
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
Modifié par ryko1820 le 5/01/2014 à 19:26
Modifié par ryko1820 le 5/01/2014 à 19:26
Arf
essaye de passer ta requète sql dans phpmyadmin avant de la mettre dans ton code ...
... Là elle est fausse aussi.
Cela serait plus :
ou
Qui sont équivalentes l'id étant en autoincrement je suppose (?)
Mais ton erreur initiale ne concerne pas sql ou la bdd.
La valeur de $mot_de_passe['MDP'] n'existe pas.
Comment est générée cette valeur ?
Tu essayes bien de passer la valeur contenu dans la clef 'MDP' du tableau $mot_de_passe ? Car là c'est ce que tu as écrit.
Si tu veux passer uniquement la variable $mot_de_passe à ta requête c'est :
ou
(Qui sont équivalentes si ta colonne 'ID' s'écrit bien comme ça)
qu'il faut écrire, mais ça ne veut plus dire la même chose ...
Est-ce que tu saisis les nuances ?
/!\ Dans MySQL PHP les nom des colonnes sont case sensitive, il faut donc respecter dans tes requêtes la casse des noms des colonnes utilisés dans ta base ...
Edit : j'ai retiré les quotes autour des noms des colonnes mySQL de la requête, ce ne sont pas des
essaye de passer ta requète sql dans phpmyadmin avant de la mettre dans ton code ...
... Là elle est fausse aussi.
Cela serait plus :
INSERT INTO 'mdpgeneres' (MDP) VALUES ('".$mot_de_passe['MDP']."');
ou
INSERT INTO 'mdpgeneres' (ID,MDP) VALUES ('','".$mot_de_passe['MDP']."');
Qui sont équivalentes l'id étant en autoincrement je suppose (?)
Mais ton erreur initiale ne concerne pas sql ou la bdd.
La valeur de $mot_de_passe['MDP'] n'existe pas.
Comment est générée cette valeur ?
Tu essayes bien de passer la valeur contenu dans la clef 'MDP' du tableau $mot_de_passe ? Car là c'est ce que tu as écrit.
Si tu veux passer uniquement la variable $mot_de_passe à ta requête c'est :
INSERT INTO 'mdpgeneres' (MDP) VALUES ('".$mot_de_passe]."');
ou
INSERT INTO 'mdpgeneres' (ID,MDP) VALUES ('','".$mot_de_passe."');
(Qui sont équivalentes si ta colonne 'ID' s'écrit bien comme ça)
qu'il faut écrire, mais ça ne veut plus dire la même chose ...
Est-ce que tu saisis les nuances ?
/!\ Dans MySQL PHP les nom des colonnes sont case sensitive, il faut donc respecter dans tes requêtes la casse des noms des colonnes utilisés dans ta base ...
Edit : j'ai retiré les quotes autour des noms des colonnes mySQL de la requête, ce ne sont pas des
'(Touche
4) mais des
'(Touches
Alt-Gr+
7) et comme elles ne servent que pour les noms de colonnes qui auraient des espaces ce qui j'espère n'est pas ton cas ...
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 19:14
5 janv. 2014 à 19:14
oui oui la colonne id dans ma base s'appel : "ID" donc, je pourrais faire un changement dans la rrequête en remplaçant "Id" par "ID" je test après avoir mangé et je te tien au courant.
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 19:35
5 janv. 2014 à 19:35
Alors, en faisant comme ça :
J'ai plus de message d'erreur MAIS par contre, il enregistre rien dans ma base de donnée.
Une idée ?
function generer_mot_de_passe($nb_caractere) { $mot_de_passe = ""; $chaine = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $longeur_chaine = strlen($chaine); for($i = 1; $i <= $nb_caractere; $i++) { $place_aleatoire = mt_rand(0,($longeur_chaine-1)); $mot_de_passe .= $chaine[$place_aleatoire]; } $HOTE = 'localhost'; //NOM DE L'HÔTE SQL (fourni par ton hébergeur) $DB = 'fc_lucryio'; //NOM DE TA BASE DE DONNEES (que tu dois crée ou pas selon ton hébergeur) $USERNAME = 'root'; //NOM D' UTILISATEUR FOURNI PAR TON HEBERGEUR $PWD = ''; //MOT DE PASSE SQL FOURNI PAR TON HEBERGEUR //********************************// // Il faut que tu modifie les // // ci dessus // //********************************// try { $bdd = new PDO('mysql:host='.$HOTE.';dbname='.$DB.'',$USERNAME,$PWD); } catch (Exception $e){ die ('Erreur: ' . $e->getMessage()); } // NOUS VOILA CONNECTER A LA BASE DE DONNEE (NORMALEMENT) /* Il faudra créer une table dans votre base de donnée, elle s'appelera MDPgeneres il y aure dedans les champs : ID , de type INT avec une limite de caracteres de 11 MDP de type char avec une limite de 255 */ $bdd->exec('INSERT INTO mdpgeneres ("ID","MDP") VALUES("", "'.$mot_de_passe.'")'); return $mot_de_passe; } echo 'Bravo, vous pouvez passer à l\'étape suivante en donnant ce code <mark>'.generer_mot_de_passe(12).'</mark> à Messi44 par MP sur SDF.'; } else { echo "Vous n'avez pas encore atteint la note minimum de 18/20."; } ?>
J'ai plus de message d'erreur MAIS par contre, il enregistre rien dans ma base de donnée.
Une idée ?
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
Modifié par ryko1820 le 5/01/2014 à 19:43
Modifié par ryko1820 le 5/01/2014 à 19:43
faudrait savoir ce qu'il y a dans $mot_de_passe
pour ça que je te proposais d'en faire un var_dump tout à l'heure.
Sinon faut pas mettre de quotes autour de ID et de MDP ça doit pas être nécessaire et peut être même nuisible :
Pour être sûr. Tu prend la requête :
et tu la rentres à la main dans phpmyadmin (dans l'onglet SQL) pour voir ...
pour ça que je te proposais d'en faire un var_dump tout à l'heure.
Sinon faut pas mettre de quotes autour de ID et de MDP ça doit pas être nécessaire et peut être même nuisible :
$bdd->exec('INSERT INTO mdpgeneres (ID,MDP) VALUES("", "'.$mot_de_passe.'")');
Pour être sûr. Tu prend la requête :
INSERT INTO mdpgeneres (ID,MDP) VALUES("", "test")
et tu la rentres à la main dans phpmyadmin (dans l'onglet SQL) pour voir ...
Lucryio
Messages postés
204
Date d'inscription
samedi 4 janvier 2014
Statut
Membre
Dernière intervention
4 juin 2017
5 janv. 2014 à 19:49
5 janv. 2014 à 19:49
Ah merde les quotes, je les ai pas retiré ^^ bin ça marche.
En faite, le souci depuis le début étais les quotes, je cherchais trop loin pour un truc à la con lol
Merci beaucoup de ton aide en tous cas. vraiment merci.
Donc :
c'est good :P
En faite, le souci depuis le début étais les quotes, je cherchais trop loin pour un truc à la con lol
Merci beaucoup de ton aide en tous cas. vraiment merci.
Donc :
$bdd->exec('INSERT INTO mdpgeneres (id,mdp) VALUES("", "'.$mot_de_passe.'")');
c'est good :P
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
5 janv. 2014 à 19:53
5 janv. 2014 à 19:53
De rien.
Enfin y avait aussi que tu essayais de passer un tableau au lieu d'une variable dans ta requète.
Et puis y'a d'autres trucs, car là c'est pas trop sécurisé à plusieurs niveau, mais beaucoup de codes que je vois ici ne le sont pas ...
Enfin y avait aussi que tu essayais de passer un tableau au lieu d'une variable dans ta requète.
Et puis y'a d'autres trucs, car là c'est pas trop sécurisé à plusieurs niveau, mais beaucoup de codes que je vois ici ne le sont pas ...