Page 1 sur 1

probleme envoi de fichier formulaire

Posté : 24 juin 2013, 17:01
par MACK
je souhaite améliorer mon site web et notamment le formulaire de contact en ajoutant la possibilité d'uploader un fichier, j'ai suivi différents cours sur le sujet, mais visiblement ça ne fonctionne pas,

je reçois bien le mail avec les variables textes ou a champ multiple, mais l'image n'est récupéré nulle part, et je ne suis pas sur de l'endroit ou j'ai créer le dossier "upload" sur le server....

voici le code source html :


<form action="envoi.php" method="post" enctype="multipart/form-data" name="formContact" autocomplete="on">
<p>
<label for="nom">Nom<span class="required">*</span></label>
<input type="text" name="nom" id="nom" required="required" placeholder="Votre nom" />
</p>

<p>
<label for="prenom">Prénom</label>
<input type="text" name="prenom" id="prenom" placeholder="Votre prénom" />
</p>

<p>
<label for="email">Email<span class="required">*</span></label>
<input type="email" name="email" id="email" required="required" placeholder="Votre email" />
</p>

<p>
<label for="sujet">Sujet<span class="required"></span></label>
<input type="text" name="sujet" id="sujet" placeholder="Quel est votre sujet ?" />
</p>



<p>
<label for="message">Message<span class="required">*</span></label>
<textarea id="message" name="message" required="required" placeholder="Ecrivez votre message"></textarea>
</p>


<p>
<label for="monfichier">Joindre un dessin / une image (bientôt opérationnel)</label>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input type="file" name="avatar" id="avatar" value="Ajouter mon fichier" />
</p>

<p>
<label for="choix"> Comment avez-vous entendu parler de nous? </label>
<select name="choix">

<option value="Bouche_a_oreille" selected="selected">Bouche à oreille</option>
<option value="Reseaux_sociaux" >Réseaux sociaux</option>
<option value="Moteur_de_recherche">Moteur de recherche</option>
</select>
</p>

<p class="indication">Tous les champs avec une <span class="required">*</span> sont obligatoires</p>

<p>
<input type="submit" value="Envoyez" />
</p>

</form>



ainsi que le code php de la page envoi.php

$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}





$nom=utf8_decode($_POST['nom']);
$prenom=utf8_decode($_POST['prenom']);
$email=utf8_decode($_POST['email']);
$sujet=utf8_decode($_POST['sujet']);
$message=utf8_decode($_POST['message']);

$choix=utf8_decode($_POST['choix']);



/* Destinataire */

$to = 'monadressemail.fr';

/* Construction email */

$msg = 'Bonjour,'."\r\n\r\n";
$msg.= 'Ce mail a ete envoye depuis votre site internet par '.$prenom.' '.$nom."\r\n\r\n";
$msg .= 'Voici son message :'."\r\n\r\n";
$msg.= 'Sujet : '.$sujet."\r\n";
$msg.= '*********************'."\r\n";
$msg.= $message."\r\n";
$msg.= '*********************'."\r\n";
$msg.= $choix."\r\n";
$msg.= '*********************'."\r\n";

/* Entete mail */

$headers = 'From: '.$nom.'<'.$email.'>'."\r\n";
$headers .= 'Reply-To: <'.$email.'>'."\r\n";

/* envoi mail */

mail($to, $sujet, $msg, $headers);

?>

pourriez-vous m'aider svp ?

cordialement

Pierre Macaluso

Re: probleme envoi de fichier formulaire

Posté : 24 juin 2013, 17:11
par MACK
SINON j'ai un autre code issu du cours du site du zero ( dans le livre ) :

<?php

if (isset ($_FILES ['monfichier']) AND $_FILES ['monfichier'] [' error'] == 0 )

{

if ($_FILES ['monfichier'] ['size'] <= 1000000 )

{

$infosfichiers = pathinfo ($_FILES ['monfichier'] ['name']);
$extension_upload = $infosfichier ['extension'];
$extensions_autorisees = array ('jpg', 'jpeg', 'gif', 'png');

if (in_array ($extension_upload, $extensions_autorisees))
{
move_upload_files ($_FILES ['monfichier']['tmp_name'], 'upload/'. basename ($_FILES ['monfichier'] ['name']));
echo "L'envoi a bien été effectué";
}
}
}

?>