Erreur "Notice : Array to string conversion in..."
Résolu
Nenatio
-
Nenatio -
Nenatio -
Bonjour !
J'ai besoin de votre aide car je suis bloqué sur un problème que je n'arrive pas à résoudre.
Je tombe sur ce code erreur : "Notice : Array to string conversion in...".
Après quelques recherches sur cette erreur, je n'ai toujours pas trouvé de moyen de la résoudre.
Voici le morceau de code contenant l'erreur :
L'erreur se trouverait sur la ligne suivante :
Je précise que certaines variables sont définies plus haut.
Merci d'avance pour votre aide !
J'ai besoin de votre aide car je suis bloqué sur un problème que je n'arrive pas à résoudre.
Je tombe sur ce code erreur : "Notice : Array to string conversion in...".
Après quelques recherches sur cette erreur, je n'ai toujours pas trouvé de moyen de la résoudre.
Voici le morceau de code contenant l'erreur :
if ($_POST['mot_de_passe']==$_POST['mot_passe_verif']) { $mot_de_passe=password_hash($_POST['mot_de_passe'], PASSWORD_DEFAULT); $hachage=true; $portefeuille=0; $victoires=0; $statut=0; $nom=$_POST['nom']; $prenom=$_POST['prenom']; $pseudo=$_POST['pseudo']; $req = $bdd->prepare('INSERT INTO utilisateur(nom, prenom, pseudo, mot_de_passe, courriel, date_naissance, statut, portefeuille, victoires) VALUES(:nom, :prenom, :pseudo, :mot_de_passe, :courriel, :date_naissance, :statut, :portefeuille, :victoires)'); $req->execute(array( 'nom' => $nom, 'prenom' => $prenom, 'pseudo' => $pseudo, 'mot_de_passe' => $mot_de_passe, 'courriel' => $courriel, 'date_naissance' => $date_naissance, 'statut' => $statut, 'portefeuille' => $portefeuille, 'victoires' => $victoires )); echo 'Ajout du membre effectué!'; } else { $erreur="Les mots de passe saisis sont différents"; $hachage=false; }
L'erreur se trouverait sur la ligne suivante :
'victoires' => $victoires
Je précise que certaines variables sont définies plus haut.
Merci d'avance pour votre aide !
A voir également:
- Notice: array to string conversion in
- Notice gratuite - Guide
- Qwerty to azerty - Guide
- Deco in paris avis ✓ - Forum Consommation & Internet
- Navigation in private - Guide
- Notice chromecast - Guide
3 réponses
Bonjour,
Fais un var_dump de tes différentes variables
NB: Vu que tu fais du PDO, pense à gérer correctement les erreurs.
Applique ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Tu peux aussi suivre les consignes données ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Fais un var_dump de tes différentes variables
NB: Vu que tu fais du PDO, pense à gérer correctement les erreurs.
Applique ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Tu peux aussi suivre les consignes données ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Excuse-moi, je n'ai pas fait attention. Le voici corrigé :
La ligne 96 correspond à la ligne suivante :
if ($_POST['mot_de_passe']==$_POST['mot_passe_verif']) { $mot_de_passe=password_hash($_POST['mot_de_passe'], PASSWORD_DEFAULT); $hachage=true; $portefeuille=0; $victoires=0; $statut=0; $nom=$_POST['nom']; $prenom=$_POST['prenom']; $pseudo=$_POST['pseudo']; $req = $bdd->prepare('INSERT INTO utilisateur(nom, prenom, pseudo, mot_de_passe, courriel, date_naissance, statut, portefeuille, victoires) VALUES(:nom, :prenom, :pseudo, :mot_de_passe, :courriel, :date_naissance, :statut, :portefeuille, :victoires)'); $req->execute(array( 'nom' => var_dump($nom), 'prenom' => var_dump($prenom), 'pseudo' => var_dump($pseudo), 'mot_de_passe' => var_dump($mot_de_passe), 'courriel' => var_dump($courriel), 'date_naissance' => var_dump($date_naissance), 'statut' => var_dump($statut), 'portefeuille' => var_dump($portefeuille), 'victoires' => var_dump($victoires) )); echo 'Ajout du membre effectué!'; } else { $erreur="Les mots de passe saisis sont différents"; $hachage=false; }
La ligne 96 correspond à la ligne suivante :
'date_naissance' => var_dump($date_naissance),
oulaaaaa.....
Alors les var_dump ce n'est pas pour "corriger" quoi que ce soit.....
C'est pour débuguer pour essayer de comprendre où se trouve ton erreur !
Il faut remettre ton code comme il était avant et AJOUT des var_dump des variables à côté !
Alors les var_dump ce n'est pas pour "corriger" quoi que ce soit.....
C'est pour débuguer pour essayer de comprendre où se trouve ton erreur !
Il faut remettre ton code comme il était avant et AJOUT des var_dump des variables à côté !
if ($_POST['mot_de_passe']==$_POST['mot_passe_verif']) { $mot_de_passe=password_hash($_POST['mot_de_passe'], PASSWORD_DEFAULT); $hachage=true; $portefeuille=0; $victoires=0; $statut=0; $nom=$_POST['nom']; $prenom=$_POST['prenom']; $pseudo=$_POST['pseudo']; $datas = array( ':nom' => $nom, ':prenom' => $prenom, ':pseudo' => $pseudo, ':mot_de_passe' => $mot_de_passe, ':courriel' => $courriel, ':date_naissance' => $date_naissance, ':statut' => $statut, ':portefeuille' => $portefeuille, ':victoires' => $victoires ); $sql = 'INSERT INTO utilisateur(nom, prenom, pseudo, mot_de_passe, courriel, date_naissance, statut, portefeuille, victoires) VALUES(:nom, :prenom, :pseudo, :mot_de_passe, :courriel, :date_naissance, :statut, :portefeuille, :victoires)'; var_dump($nom); var_dump($prenom); var_dump($pseudo); var_dump($mot_de_passe); var_dump($courriel); var_dump($date_naissance); var_dump($statut); var_dump($portefeuille); var_dump($victoires); try{ $req = $bdd->prepare($sql); $req->execute($datas); echo 'Ajout du membre effectué!'; }catch(Exception $e){ echo " Erreur " . $e->getMessage(); } } else { $erreur="Les mots de passe saisis sont différents"; $hachage=false; }
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, c'est la variable $date_naissance qui pose problème. comment l'as-tu définie?
quel est le type du champ date_naissance dans la base de données?
quel est le type du champ date_naissance dans la base de données?
Disons que j'ai réalisé quelque chose qui je pense n'était pas du tout optimisé. En fait, j'avais placé dans ma variable $date_naissance le contenu d'un input. De ce fait (je pense), le format était différent, ce qui a conduit à cette erreur.
Après avoir tout corrigé, tout semble correct et fonctionnel.
Je te remercie grandement ainsi que @jordane45 pour votre patience car c'était pas gagné ;).
Merci encore et bonne continuation !
Après avoir tout corrigé, tout semble correct et fonctionnel.
Je te remercie grandement ainsi que @jordane45 pour votre patience car c'était pas gagné ;).
Merci encore et bonne continuation !
Après avoir appliqué ce que tu m'as indiqué, je constate l'apparition de lignes inattendues sur ma page :
Et lorsque je regarde dans phpmyadmin, le membre n'est pas enregistré dans la table.
A quoi correspond la ligne 96 ?