Bonjour,
J'ai un souci sur la récupération d'une adresse email en php.
J'ai fait un formulaire d'envoi de mail (qui fonctionne parfaitement)
Cet envoi est récupéré dans une base de données mySQL (qui fonctionne parfaitement).
J'ai fait une page de gestion qui affiche les mails, permet de supprimer un ou tous les messages et repondre à un mail (qui fonctionne parfaitement sauf que ... lorsque je clique sur le bouton Reponse, j'aimerai que l'adresse email de l'expéditeur s'affiche automiquement dans le formulaire de réponse et la j'ai un beau message d'erreur m indiquant Recoverable fatal error: Object of class PDOStatement could not be converted to string in /home/contact/repondre.php on line 31 Call Stack #TimeMemoryFunctionLocation 10.0012406136{main}( ).../repondre.php:0 ).

Ce que j'ai fait :
ma base mysql comporte un id auto-incrémenté dont le champ s'appelle "id"et l'adresse email entrée par le contact (dont le champ s'appelle "email") qui sont dans une table "contact"
Sur la page de gestion j'ai mis une ligne qui récupère cet id dans l'adresse de réponse (qui fonctionne, lorsque le clique sur le bouton répondre, j'ai la page du formulaire de réponse par le fichier repondre.php suivi de ?id=[et le bon id de l'expéditeur].
Sur mon fichier de réponse j'ai récupéré le id du message envoyé et j'ai fait une sélection du mail en fonction de cet id

$id_mail = $_GET['id'];
$recup_email = $connexion->query("SELECT email FROM contact WHERE id='$id_mail'");

ensuite pour afficher l'adresse mail dans le champ du formulaire, j'ai mis un
<input type="email" id="email_rep" name="email_rep" size="30" value="<?php echo $recup_email; ?>">

Et la il m'affiche le message d'erreur

Je ne sais pas si ma demande est suffisamment compréhensible mais si vous avez une aide, un tuyau (sans parler de solution toute faite) pour savoir ou j'ai merdouillé, je suis preneur.
Merci

7 réponses


Carouge10
Réponse acceptée

Bonjour,
Oui il te manque un fetch entre ta query (qui d'ailleurs est ouverte aux injections SQL) et le moment où tu utilises $recup_mail;

Bonjour, je vais voir ça. Merci

J'ai trouvé le truc.
Effectivement avec le fetch() dans la requête ça fonctionne mieux.
Merci pour votre tuyau

Pense également à sécuriser ta requête en la préparant et en utilisant les marqueurs

J'ai modifié ma requête pour éviter les injections SQL (j'ai fait un prepare, j'ai utilisé le bindParam et j'ai terminé par un execute() ).

Parfait
tu peux donc passer ton sujet en résolu

Merci pour votre précieuse aide