Erreur Code php pour envoi fichier
Posté : 20 mai 2011, 11:23
Bonjour,
Je rencontre un problème dans mon code PHP pour envoyer un fichier d'extension jpg, gif, png, doc.
Lorsque j'appuie sur le bouton envoyer, le message suivant s'affiche : Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
Alors que je sélectionne bien un jpg, un gif etc
Voici mon code html :
MERCI
Je rencontre un problème dans mon code PHP pour envoyer un fichier d'extension jpg, gif, png, doc.
Lorsque j'appuie sur le bouton envoyer, le message suivant s'affiche : Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...
Alors que je sélectionne bien un jpg, un gif etc
Voici mon code html :
<form method="post" action="formmail1.php" >
<input type="hidden" name="subject2" value="formmail" />
<table>
<tr>
<td>Votre Nom:</td>
<td><input type="text" name="realname2" size="30" /></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input type="text" name="email2" size="30" /></td>
</tr>
<tr>
<td>Votre CV:</td>
<td><input type="file" name="doc" />
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
</td>
</tr> <tr>
<td>Sujet:</td>
<td><input type="text" name="title2" size="30" /></td>
</tr>
<tr>
<td colspan="2">Commentaires:<br />
<textarea cols="50" rows="6" name="comments2"></textarea></td>
</tr>
</table>
<br />
<input type="submit" value="Envoyer" />
-
<input type="reset" value="Annuler" />
</form>
Et mon code Php :
<?php
$TO = "[email protected]";
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
$dossier = 'upload/';
$fichier = basename($_FILES['doc']['name']);
$taille_maxi = 1048576;
$taille = filesize($_FILES['doc']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['doc']['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['doc']['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;
}
?>
J'aimerai bien qu'après avoir appuyer sur le bouton envoyer, ceci m'envoie sur une page remerciement.html MERCI