Page 1 sur 1

recuperer une photo d'un formulaire par email

Posté : 20 déc. 2007, 16:28
par karenma
Bonjour,

J'ai créé un formulaire comprenant le bouton parcourir pour récupérer une photo
(<input type="file" name="photo" size="20"/>)


Le formulaire s'envoi automatiquement à mon adresse email mais le pb c'est que j'ai tous les champs sauf la photo.

Comment puis je récupérer la photo


Merci d'avance

Posté : 20 déc. 2007, 21:41
par AB
Si j'ai bien compris tu as un pb d'envoi de mail avec pièces jointes.

Une bonne adresse ici
http://www.vulgarisation-informatique.c ... ece_jointe

pb d'email

Posté : 20 déc. 2007, 22:15
par karenma
Bonjour
j'ai crée une page avec un formulaire

Code : Tout sélectionner

<form id="form1" name="form1" method="post" action="email.php"> <input type="file" name="photo" size="20"/> <input type="submit" name="Submit" value="Envoyer" /> </form>
puis j'ai copié le code du lien que tu m'as donné sur une nouvelle page appelée email.php
ou j'ai changé la ligne $email_expediteur et j'ai mis mon email

et apparition du message d'erreur suivant:

Warning: file_get_contents(nom_du_fichier.jpg) [function.file-get-contents]: failed to open stream: No such file or directory in /mnt/140/sda/4/e/nomdudossier/email.php on line 69

Warning: mail() [function.mail]: Invalid mail. to = [] in /mnt/140/sda/4/e/nomdudossier/email.php on line 71
Le mail a été envoyé


merci d'avance

Re: pb d'email

Posté : 20 déc. 2007, 23:20
par DocType
Bonjour
j'ai crée une page avec un formulaire

Code : Tout sélectionner

<form id="form1" name="form1" method="post" action="email.php"> <input type="file" name="photo" size="20"/> <input type="submit" name="Submit" value="Envoyer" /> </form>
puis j'ai copié le code du lien que tu m'as donné sur une nouvelle page appelée email.php
ou j'ai changé la ligne $email_expediteur et j'ai mis mon email

et apparition du message d'erreur suivant:

Warning: file_get_contents(nom_du_fichier.jpg) [function.file-get-contents]: failed to open stream: No such file or directory in /mnt/140/sda/4/e/nomdudossier/email.php on line 69

Warning: mail() [function.mail]: Invalid mail. to = [] in /mnt/140/sda/4/e/nomdudossier/email.php on line 71
Le mail a été envoyé


merci d'avance
Le code serait utile :wink:

pb

Posté : 21 déc. 2007, 08:58
par karenma
Bonjour
j'ai crée une page avec un formulaire

Code : Tout sélectionner

<form id="form1" name="form1" method="post" action="email.php"> <input type="file" name="photo" size="20"/> <input type="submit" name="Submit" value="Envoyer" /> </form>

puis j'ai copié le code du lien que tu m'as donné sur une nouvelle page appelée email.php
ou j'ai changé la ligne $email_expediteur et j'ai mis mon email



Code : Tout sélectionner

<?php //----------------------------------------------- //DECLARE LES VARIABLES //----------------------------------------------- $email_expediteur='[email protected]'; $email_reply='[email protected]'; $message_texte='Bonjour,'."\n\n".'Voici un message au format texte'; $message_html='<html> <head> <title>Titre</title> </head> <body>Test de message</body> </html>'; //----------------------------------------------- //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML //----------------------------------------------- $frontiere = '-----=' . md5(uniqid(mt_rand())); //----------------------------------------------- //HEADERS DU MAIL //----------------------------------------------- $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n"; $headers .= 'Return-Path: <'.$email_reply.'>'."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"'; //----------------------------------------------- //MESSAGE TEXTE //----------------------------------------------- $message = 'This is a multi-part message in MIME format.'."\n\n"; $message .= '--'.$frontiere."\n"; $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"; $message .= $message_texte."\n\n"; //----------------------------------------------- //MESSAGE HTML //----------------------------------------------- $message .= '--'.$frontiere."\n"; $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n"; $message .= 'Content-Transfer-Encoding: 8bit'."\n\n"; $message .= $message_html."\n\n"; $message .= '--'.$frontiere.'--'."\n"; //----------------------------------------------- //PIECE JOINTE //----------------------------------------------- $message .= 'Content-Type: image/jpeg; name="nom_du_fichier.jpg"'."\n"; $message .= 'Content-Transfer-Encoding: base64'."\n"; $message .= 'Content-Disposition:attachement; filename="nom_du_fichier.jpg"'."\n\n"; $message .= chunk_split(base64_encode(file_get_contents('nom_du_fichier.jpg')))."\n"; if(mail($destinataire,$sujet,$message,$headers)) { echo 'Le mail a été envoyé'; } else { echo 'Le mail n\'a pu être envoyé'; } ?>



mais il me renvoie l'erreur




Warning: file_get_contents(nom_du_fichier.jpg) [function.file-get-contents]: failed to open stream: No such file or directory in /mnt/140/sda/4/e/nomdudossier/email.php on line 69

Warning: mail() [function.mail]: Invalid mail. to = [] in /mnt/140/sda/4/e/nomdudossier/email.php on line 71
Le mail a été envoyé

je ne comprends rien merci pour votre aide

Posté : 21 déc. 2007, 11:12
par Ryle
Le code que tu as récupéré sans essayer de comprendre ce qu'il faisait va envoyer le fichier nommé "nom_du_fichier.jpg" qu'il pense trouver sur le serveur dans le dossier ou se trouve le script, dans un mail.

J'imagine que tu n'as aucun fichier nommé "nom_du_fichier.jpg", ce qui justifierait assez facilement le fait que php soit incapable de le lire avec la fonction file_get_contents().

Indique lui où se trouve le fichier qui a été uploadé, et il aura beaucoup plus de facilité à le trouver pour te l'envoyer... Recherche du côté de $_FILES et de l'upload de fichiers. Ces sujets ont souvent été abordés et la doc est suffisament complète :)

merci

Posté : 27 déc. 2007, 22:27
par karenma
ok merci à tous