Accueil > Forum > > > > Récupérer un fichier image d'un formulaire
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 à zéro" id="annul" value="Réinitialiser" />
</p>
<p> </p>
</form>
<p> </p>
<p> </p>
</div>
<div class="espacesousmenu"></div>
<p> </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.
|
|
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
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|