Envoi image par email par un formulaire

Fermé
Utilisateur anonyme - 20 oct. 2012 à 16:10
 Utilisateur anonyme - 23 oct. 2012 à 20:48
Bonjour,

Voilà, j'ai mon propre site et j'aimerais que sur une page, chaque utilisateur
puisse compléter un formulaire (Avec prénom) et qu'il puisse télécharger
une image de ses documents, puis une fois qu'il valide son formulaire, je
voudrais recevoir le tout par e-mail. Sachant que je ne sais pas coder,
pourrais-je avoir un code plutôt simple ?
Merci.
A voir également:

3 réponses

Bonsoir,

Tu as la réponse ici http://www.commentcamarche.net/forum/affich-26286972-envoil-email-avec-php
0
AppS Messages postés 36 Date d'inscription vendredi 19 octobre 2012 Statut Membre Dernière intervention 28 octobre 2014 15
20 oct. 2012 à 22:51
Bonsoir,

Imaginons d'un coté la page où l'utilisateur souhaites compléter le formulaire :

<form method="POST" action="#">
      <input type="text" name="name" value="Votre prénom" />
      <input type="text name="mail" value="votre@mail.fr" />
      <input type="submit" value="Envoyer" />
</form>


<?php  /* CE CODE AVANT TOUT CODE HTML */
if(!empty($_POST['name']) && !empty($_POST['mail'])) {
     $now = date('d-m-Y H:i:s');
     $to = "VOTRE_MAIL";
     $from = "VOTRE_MAIL_SERVER";
     $subject = "VOTRE SUJET";
     $msg = 'l\'image ........ a été téléchargé par : '.$_POST['mail'];
     $msg .= ' le '.$now;
     $headers = 'VOS HEADERS DE MAILS';
     $headers .= 'VOS AUTRES HEADERS etc...';
     if(mail($to, $subject, $message, $headers)) {
            header('Location: VOTRE_PAGE_DE_TELECHARGEMENT.php');
     }else{
           $error = true;
           $error_m = "Une erreur c'est produite.";
     }
}
?>


Bon, je viens de le faire en deux minutes, il y a des améliorations à effectuer mais dans l'ensemble c'est fonctionnel. (Ps: $error & $error_m servent d'annonce à afficher dans la page)

Maintenant la page de téléchargement qui correspond, dans le code précédent à :
"VOTRE_PAGE_DE_TELECHARGEMENT.php";

<?php
// information concernant le fichier à télécharger
$fichier = 'mon_repertoire/mon_fichier.jpg';
$nom_fichier = 'mon_fichier.jpg';

// téléchargement du fichier
header('Content-disposition: attachment; filename='.$nom_fichier);
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: fichier');
header('Content-Length: '.filesize($fichier));
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($fichier);
?>


Voilà... Autre chose bien pratique à mettre par la suite :
Mettre dans une bdd les url qui pointes vers les fichiers dispo en téléchargement.
Histoire de faire passer à "VOTRE_PAGE_DE_TELECHARGEMENT.php" un id
qui correspondra au fichier en question ;)
0
Utilisateur anonyme
21 oct. 2012 à 08:14
Bonjour,

J'aimerais plus de renseignements car je ne sais trop programmer.
Je ne comprends pas ce que je dois remplacé ici :

$headers = 'VOS HEADERS DE MAILS';
     $headers .= 'VOS AUTRES HEADERS etc...';


Puis il y a écrit ;

<?php  /* CE CODE AVANT TOUT CODE HTML */


Donc je le met avant le code HTML ou comme tu as fais ?

Puis tu as mis également :

$from = "VOTRE_MAIL_SERVER";


Je met quoi ici ??

Et enfin, il y a :
<form method="POST" action="#">

Je met quoi à la place de # ?

Merci.
0
AppS Messages postés 36 Date d'inscription vendredi 19 octobre 2012 Statut Membre Dernière intervention 28 octobre 2014 15
21 oct. 2012 à 11:50
Bonjour,

Alors pour $headers il te faut mettre les header mail c'est à dire quelque chose comme :
$headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();


Ensuite le code "/* CE CODE AVANT TOUT CODE HTML*/ doit en effet être avant ton DOCTYPE puis-ce que php risque de se servir d'un header pour rediriger sur la page de téléchargement au cas où le mail est bien envoyé.

$from = "votre_mail_server"; c'est en réalité l'adresse email d'expédition.
Tu peux y mettre tout ce que tu veux 'fbi@elysee.fr' ou autre.

Pour le <form method="POST" action="#"> le # correspond à la page en cours.
C'est à dire où il devrait y avoir le code php de redirection + l'envois du mail.
Donc il ne sert à rien d'y toucher.
0
Utilisateur anonyme
21 oct. 2012 à 16:47
Sa me donne sa :

http://hpics.li/01db78b

Je sais que j'ai fais un truc de mal, mais quoi ? Car on voit pas le "telecharger un fichier" :(
0
AppS Messages postés 36 Date d'inscription vendredi 19 octobre 2012 Statut Membre Dernière intervention 28 octobre 2014 15
21 oct. 2012 à 23:06
C'est tout à fait normal. Le php ne fait qu'envoyer un mail et rediriger l'utilisateur vers la page, il n'affiche en lui même rien à l'écran. Le php ne sert qu'à exécuter du code coté serveur. Penses à mettre ça dans une page html avec toutes les balises nécessaires.

Et lorsque quelqu'un va remplir les champs du formulaire et le soumettre ça t'enverra un mail et fera en sorte que l'utilisateur soit sur la page de téléchargement.

Pour ne pas avoir d'erreur je te conseil fortement de remplir les champs php complètement. le $to n'est pas valide.
0

Une fois complété le formulaire, je reviens sur le formulaire avec juste mail et prénom. Une fois validé, je ne reçoit rien ! Ni mail, ni prénom, ni image :'(
Si tu ne comprends pas, ceci mais je veux recevoir par mail :
 

 <form action="copy.php3"> 

<!-- c'est ca qui nous intéresse :      --> 
<input name="Filezone" type="file"> 


<input type="submit" value="Uploader"> 
</form> 


puis dans copy.php3 

<? 
copy ($Filezone,"Destination"); 
?> 
 


Ou sinon, tu le fais pas par mail, mais tu fais quelque chose pour que le formulaire avec l'image arrive dans un endroit de mon site :)

0
AppS Messages postés 36 Date d'inscription vendredi 19 octobre 2012 Statut Membre Dernière intervention 28 octobre 2014 15
22 oct. 2012 à 20:55
Ah, excuses moi je n'avais pas saisi !
Tu souhaites que les utilisateurs t'envois leurs images et recevoir une copie de tout ça par mail.

je te regarde ça dans la soirée si j'ai le temps ;)
0
Utilisateur anonyme
23 oct. 2012 à 20:48
Nan c'bon, j'ai demandé à un ami qui m'a donné un site avec lequel j'ai fais ceci :

<script type="text/javascript" src="http://form.jotformeu.com/jsform/22965077600354"></script>


Mais merci ;)
0