begin process at 2012 05 31 17:21:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Récupérer un fichier image d'un formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer un fichier image d'un formulaire

mercredi 14 septembre 2011 à 17:55:03 | Récupérer un fichier image d'un formulaire

stephelle

Bonjour,
J'ai créer un formulaire en html qui renvoi les infos vers une page php qui me les envoi par mail.
Jusque là tout fonctionne.
Le problème vient maintenant du fait que je souhaite faire joindre un fichier dans le formulaire.
J'ai fait "champ de fichier" dans dream.. mais je ne le reçois pas dans le mail.

Je suis sûr que vous avez la réponse!!

Alors merci par avance pour votre réponse.
mercredi 14 septembre 2011 à 20:19:17 | Re : Récupérer un fichier image d'un formulaire

pierreSabatier

Réponse acceptée !
Bonjour, tout d'abord la balise form doit contenir l'attribut enctype="multipart/form-data".

Je te conseille pour le coup d'aller ici : http://fr.php.net/manual/fr/features.file-upload.post-method.php Rien n'est plus clair que la doc officielle.

Les fichiers se trouvent dans la variable $_FILES.

Ensuite, l'écriture du mail est complexe, quelqu'un a déjà écrit sa fonction là : http://fr.php.net/manual/fr/function.mail.php#105661

Je pense que comme ça tu y arriveras !
Tiens-moi au courant.
mercredi 14 septembre 2011 à 22:49:06 | Re : Récupérer un fichier image d'un formulaire

stephelle

Bonsoir Pierre,

Non désolé, j'ai tout essayé dans tous les sens mais je n'ai toujours pas le fichier joint.
Je suis donc retourné à mon formulaire de base avant mon appel à l'aide.
Je pense qu'il ne manque pas grand chose car ça ne doit pas être si compliqué que ça.
Je réessayerai demain.
Voici l'adresse de mon formulaire : http://www.trail.rev7.fr/formulaire
Le code du formulaire:

<form action="traitement.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p><span id="spryradio1">
<label>
<input type="radio" name="civil" value="mr" id="civil_0" />
Monsieur</label>
<br />
<label>
<input type="radio" name="civil" value="md" id="civil_1" />
Madame</label>
<br />
<label>
<input type="radio" name="civil" value="mlle" id="civil_2" />
Mademoiselle</label>
<br />
<span class="radioRequiredMsg">Effectuez une sélection.</span></span></p>
<span id="sprytextfield1">
<label for="nom">Nom :</label>
<input type="text" name="nom" id="nom" />
<span class="textfieldRequiredMsg">e valeur est requise.</span></span>
<p><span id="sprytextfield2">
<label for="prenom">Prenom :</label>
<input type="text" name="prenom" id="prenom" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span>
</p>
<p><span id="sprytextfield4">
<label for="naissance">Date de Naissance :</label>
<input type="text" name="naissance" id="naissance" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span> Exemple 00/00/0000</p>
<p><span id="sprytextfield3">
<label for="adresse">Adresse :</label>
<input type="text" name="adresse" id="adresse" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span></p>
<p><span id="sprytextfield5">
<label for="cp">Code Postal:</label>
<input type="text" name="cp" id="cp" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span></p>
<p><span id="sprytextfield6">
<label for="ville">Ville:</label>
<input type="text" name="ville" id="ville" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span></p>
<p><span id="spryselect1">
<label for="pays">Pays</label>
<select name="pays" id="pays">
<option value="fr">France</option>
<option value="gb">Angleterre</option>
<option value="b">Belgique</option>
<option value="d">Allemagne</option>
<option value="ch">Suisse</option>
<option value="s">Espagne</option>
</select>
<span class="selectRequiredMsg">Sélectionnez un élément.</span></span></p>
<p><span id="sprytextfield7">
<label for="tel">Téléphone:</label>
<input type="text" name="tel" id="tel" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span></p>
<p><span id="sprytextfield8">
<label for="mail">Email:</label>
<input type="text" name="mail" id="mail" />
<span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span></p>
<p><span id="sprytextfield9">
<label for="club">Club:</label>
<input type="text" name="club" id="club" />
</span></p>
<p><span id="sprytextfield10">
<label for="villeclub">Ville du club:</label>
<input type="text" name="villeclub" id="villeclub" />
</span></p>
<p>
<label for="certificat">Certificat</label>
:
<input type="file" name="certificat" id="certificat" />
</p>
<p>Condition de course</p>
<p><span id="sprycheckbox1">
<input type="checkbox" name="condition" id="condition" />
<label for="condition">J'ai pris connaissance des conditions de course</label>
<span class="checkboxRequiredMsg">Vous devez validez.</span></span></p>
<p>
<input type="submit" name="button" id="button" value="Envoyer" />
<input type="reset" name="Remise &agrave; z&eacute;ro" id="annul" value="R&eacute;initialiser" />
</p>
<p>&nbsp;</p>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<div class="espacesousmenu"></div>
<p>&nbsp;</p>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "date", {format:"dd/mm/yyyy"});
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3");
var sprytextfield5 = new Spry.Widget.ValidationTextField("sprytextfield5", "zip_code", {format:"zip_custom", pattern:"00000"});
var sprytextfield6 = new Spry.Widget.ValidationTextField("sprytextfield6");
var sprytextfield7 = new Spry.Widget.ValidationTextField("sprytextfield7", "phone_number", {format:"phone_custom", pattern:"00 00 00 00 00", useCharacterMasking:true});
var sprytextfield8 = new Spry.Widget.ValidationTextField("sprytextfield8", "email");
var sprytextfield9 = new Spry.Widget.ValidationTextField("sprytextfield9", "none", {isRequired:false});
var sprytextfield10 = new Spry.Widget.ValidationTextField("sprytextfield10", "none", {isRequired:false});
var spryradio1 = new Spry.Widget.ValidationRadio("spryradio1");
var spryselect1 = new Spry.Widget.ValidationSelect("spryselect1");
var sprycheckbox1 = new Spry.Widget.ValidationCheckbox("sprycheckbox1");
</script>
</body>
</html>


et ma page de traitement de l'info:

<?php
$civil = $_POST['civil'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$naissance = $_POST['naissance'];
$adresse = $_POST['adresse'];
$cp = $_POST['cp'];
$ville = $_POST['ville'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$club = $_POST['club'];
$villeclub = $_POST['villeclub'];
$certificat = $_POST['certificat'];
$condition = $_POST['condition'];
?>
<?php //On créée le message email
$msg = "Civil= $civil
Nom= $nom
Prénom= $prenom
Date de naissance= $naissance
Adresse: $adresse
Code postal= $cp
ville= $ville
Pays= $pays
Tel= $tel
Adresse email : $mail
Club= $club
Ville du Club= $villeclub
Certificat= $certificat
Condition de course= $condition";
$recipient = "stephane.rev7@free.fr"; //On met l'adresse email ou on veut recevoire le mail
$subject = "Formulaire d inscription"; //On met le sujet du mail
$mailheaders = "From: Rev7Trail<> \n"; //depuis où il a été posté
mail($recipient, $subject, $msg, $mailheaders); // message confirmation que le mail a bien été envoyé
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, $civil $prenom </H1>";
echo "<P align=center>";
echo "Votre formulaire à bien été envoyé !</P>";
echo "</BODY></HTML>";
?>

<p class="centrer">vous serez redirigé automatiquement vers le site du Trail dans 10 secondes...ou cliquez sur ce lien : <a href="index.html">retour</a></p>


</body>
</html>



Merci au mains d'avoir pris le temps de me lire!!!
jeudi 15 septembre 2011 à 08:11:35 | Re : Récupérer un fichier image d'un formulaire

pierreSabatier

Le fichier se trouve non dans $_POST['certificat'], mais dans la variable $_FILES destiné aux fichiers.

Regarde quelle est la structure de $_FILES à l'adresse suivante : http://www.php.net/manual/fr/features.file-upload.post-method.php
jeudi 15 septembre 2011 à 19:21:48 | Re : Récupérer un fichier image d'un formulaire

stephelle

Bon alors pour faire court!!!
J'ai progressé mais je n'ai pas réussi.
Le nom du fichier apparait bien dans mon mail mais il n'est pas joint.
J'ai créer un php.ini et un dossier uploads
J'ai copier le code de l'exemple 2 de la page internet que tu m'a laisser.
Lors de l'envoi du fichier, j'ai une erreur:

Warning: move_uploaded_file(/var/www/uploads/livre.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /homepages/31/d264748446/htdocs/Rev7trail/traitement2.php on line 17



Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/homepages/31/d264748446/htdocs/Rev7trail/uploads/phpGAeMss' to '/var/www/uploads/livre.txt' in /homepages/31/d264748446/htdocs/Rev7trail/traitement2.php on line 17

Attaque potentielle par téléchargement de fichiers.
Voici plus d'informations :
Voici quelques informations de débogage :Array
(
[userfile] => Array
(
[name] => livre.txt
[type] => text/plain
[tmp_name] => /homepages/31/d264748446/htdocs/Rev7trail/uploads/phpGAeMss
[error] => 0
[size] => 1792


Il est bien renommer en fichier temporaire.
La ligne 17 pour moi est:

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {


Si j'ai bien compris, il télécharge le fichier, le met dans un fichier temporaire en lui changeant le nom mais qu'il y a un problème car ma page "traitement" ne sait pas ce qu'il doit en faire??

La ligne 17 me renvoi à la ligne 14 qui elle me renvoi à la ligne 13!!

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

voilà ma journée!!

Qu'est ce qui est faut???

Merci et à demain!!!
jeudi 15 septembre 2011 à 19:38:00 | Re : Récupérer un fichier image d'un formulaire

galled

Essais
$uploaddir = '/uploads/'; ou $uploaddir = 'uploads/';
au lieu de
$uploaddir = '/var/www/uploads/';
et assure toi que ton répertoire uploads fonctionne.

Pour l'envois de l'attachement file

http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php
C'est en anglais

Mais si tu comprend pas l'anglais regarde simplement le code de la section Sending Email with Attachment

Je n'ai jamais fait ça, donc je peux difficilement t'aider à ce niveau.

Bonne chance.
jeudi 15 septembre 2011 à 19:50:12 | Re : Récupérer un fichier image d'un formulaire

stephelle

Merci Galled. Je regarde et te répond ce soir.
jeudi 15 septembre 2011 à 21:35:29 | Re : Récupérer un fichier image d'un formulaire

stephelle

ALors j'ai regarder avec attention l'adresse que tu m'a joint Galled.
Mais je ne souhaite pas envoyer un mail en html avec pièce jointe.
Je souhaite recevoir un mail provenant d'un formulaire html qui inclu une pièce jointe.

Merci quand même.
vendredi 16 septembre 2011 à 16:26:48 | Re : Récupérer un fichier image d'un formulaire

stephelle

Bon alors aujourd'hui, j'en suis que mon fichier arrive bien sur un dossier de mon serveur. Pour le moment je m'en contenterai mais je ne lache pas l'affaire. Il ne me restera (plus qu'a!!!) renvoyer le fichier du dossier joint au mail.
Merci à vous même je ne suis pas encore arrivé, mais j'ai progressé.
vendredi 16 septembre 2011 à 16:31:42 | Re : Récupérer un fichier image d'un formulaire

pierreSabatier

Stephelle,

Tu peux utiliser la fonction développée sur la page php.net/mail et passer en paramètre ton fichier.

Patience et longueur de temps font plus que force ni que rage.

1 2

Cette discussion est classée dans : fichier, mail, récupérer, formulaire, image


Répondre à ce message

Sujets en rapport avec ce message

Récupérer données formulaire + envoi par e-mail [ par kronprinz ] Quelqu'un peut-il m'aider ?Je cherche comment récupérer des données dans un formulaire et me les envoyer par e-mail avec PHP. Pouvez-vous m'expliquer Mail et formulaire [ par Jackboy ] J'aimerai créer un formulaire, assez complexe (pas seulement email, nom, message,...) et j'aimerai avoir ce formulaire envoyer dans un email et format mail et piece jointe apres validation formulaire [ par Malabarix ] Salut,Voila j'ai un formulaire sur mon site dans le quel je fais entrez différente informations dont un .apres selectionné l'mege de son vehicule, j'e le formulaire, le fichier et l'image ... [ par PhpNono ] Bonjour ! Voilà j'ai un problème : J'ai 2 pages, 1-Dans la première je vais chercher des fichier(images en fait) ça c'est bon. je les selectionne, tou Envoyer un form par mail ! ! ! [ par laubro ] Bonjour,j'ai un formulaire que je voudrais me faire envoyer "par mail", celui-ci contien des champsclassiques : nom prenom adresse......+ 1 case texta Récupérer les infos d'un formulaire envoyé par mail [ par Osirex ] Bonjour, J'aimerais me lancer dans le PHP. J'ai un ptit projet qui est le suivant : Je voudrais envoyer un mail en introduisant du code php dedans pou Upload d'une image sans formulaire [ par djangoboy ] Bonjour à tous, Vous vous dites surement "encore un upload" mais c'est pas tout a fait pareil que les autre post. Imaginons qui j'ai une variable dan Limité taille image dans un formulaire [ par laubro ] Bonjour,J'ai monté un site de PA et dans un formulaire l'annonceur peut s'il le souhaite mettreun fichier jpg ou gif pour mettre son logoje voudrais l Récupérer le chemin d'un fichier à travers un formulaire [ par josserand ] Bonjour à tous !! Je vous explique la situation : J'utilise un formulaire de type "file" (avec son bouton parcourir) pour récupérer l'adresse d'un f Problème de transfert d'image pendant un upload de fichier html par mail() [ par JeanMi66 ] Salut à tous. J'envoi par la fonction mail() un fichier html contenant du texte et des images. Le fichier figure sur le serveur, les images aussi et


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales