Erreur Code php pour envoi fichier

lulu75
Invité n'ayant pas de compte PHPfrance

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 :
<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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mai 2011, 11:41

salut,

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

@+
Il en faut peu pour être heureux ......

lulu75
Invité n'ayant pas de compte PHPfrance

20 mai 2011, 11:49

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mai 2011, 11:51

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.

@+
Il en faut peu pour être heureux ......

lulu75
Invité n'ayant pas de compte PHPfrance

20 mai 2011, 14:38

ça ne marche tjs pas, je ne reçois rien dans ma boite mail ! :(