Page 1 sur 1

Erreur Code php pour envoi fichier

Posté : 20 mai 2011, 11:23
par lulu75
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

Re: Erreur Code php pour envoi fichier

Posté : 20 mai 2011, 11:41
par moogli
salut,

ajouter var_dump($extension,$extensions); avant le 1er if et tu devrais pouvoir comparer les valeurs afin de comprendre le problème

@+

Re: Erreur Code php pour envoi fichier

Posté : 20 mai 2011, 11:49
par lulu75
Merci beaucoup, je n'ai plus le message d'avant. Je ne reçois rien sur ma boite mail, ce n'est pas dans les spams. Peut-être qu'il faut attendre quelques minutes - heures ? Merci en tout cas

Re: Erreur Code php pour envoi fichier

Posté : 20 mai 2011, 11:51
par moogli
de rien,

oui parfois il faut du temps, parfois il est simplement supprimer, après faut voir avec les entêtes du mail, c'est souvent sur ce critère que ce fait la 1ère selection.

@+

Re: Erreur Code php pour envoi fichier

Posté : 20 mai 2011, 14:38
par lulu75
ça ne marche tjs pas, je ne reçois rien dans ma boite mail ! :(