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 :
<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
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 :
[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>[/html]
Et mon code Php :
[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;
}
?>
[/php]
J'aimerai bien qu'après avoir appuyer sur le bouton envoyer, ceci m'envoie sur une page remerciement.html
MERCI