Bonjour, voila grace a ce site j ai reussi a faire un upload , ou j ai rajouter des champs.

Mon probleme c est que dans mon formulaire , si les gens remplisse des champs et ne mettent rien dans l upload le formulaire a part , et inversement si les gens mettent un upload , mais ne remplisse pas les champsle formulaire par aussi et biensur si tout les champs sont remplis le formulaire par aussi.

Donc mon probleme est bien la verification des champs , voici mon code en esperant que quelqu un pourra m aider, je pense que vous constaterez le probleme par vous meme.

<font size="4">
    <font color="#FF0000">
<center>
<?php
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$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 uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement remplis:</font><br/>";
$msg_ok = "Votre envoie a bien été prise en compte.<br/></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br/></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com'); // remplacer par votre email
define('MAIL_SUJET', 'Envoie de fichier');
?>
</center>
        <font color="#0000FF">
            <CENTER>
    <?php
    // vérification des champs
    if (empty($_POST'Nom']))
        $message .= "Veuillez indiquer votre nom<br/>";
  if (empty($_POST'Nom']))
        $message .= "Veuillez indiquer votre nom<br/>";
    if (isset($_POST'Email'])) {
        $_POST'Email'] = htmlspecialchars($_POST'Email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
        if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
            $message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
    }
    if (isset($_POST'Emaill'])) {
        $_POST'Emaill'] = htmlspecialchars($_POST'Emaill']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
        if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
            $message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br/>';
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur))
        echo $message;
    // sinon c'est ok
    else {
        foreach ($_POST as $index => $valeur)
            $$index = stripslashes(trim($valeur));
        //Préparation de l'entête du mail:
        $mail_entete = "MIME-Version: 1.0\r\n";
        $mail_entete .= "From: {$_POST'Nom']} ";
        $mail_entete .= "<{$_POST'Email']}>\r\n";
        $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
        $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
        $mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";
        // préparation du corps du mail
        $mail_corps .= "Fichier recu\n";
        $mail_corps .= "\n";
        $mail_corps .= "Nom : $Nom\n";
        $mail_corps .= "Email : $Email\n";
        $mail_corps .= "\n";
        $mail_corps .= "Les Fridolin's\n";
        $mail_corps .= "\n";
        $mail_corps .= "Email: tsf@saint-fridolin.com\n";
        $mail_corps .= "Site: www.saint-fridolin.com\n";
        // Si l'envois du mail fonctionne.
        if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete))
            echo $msg_ok;
        //Sinon si l'envois ne fonctionne pas.
        else
            echo "Une erreur est survenue lors de l'envoi du formulaire par email";
    }
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 . md5(uniqid(rand(), true)) . $extension)) //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;
    }
    ?>

10 réponses


Essai sa:

<font size="4">
    <font color="#FF0000">
<center>
<?php
$dossier = 'resultat/';
$fichier = basename($_FILES'avatar']'name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES'avatar']'tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
$extension = strrchr($_FILES'avatar']'name'], '.');
if(!in_array($extension, $extensions)) {
     $erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
}
if($taille>$taille_maxi) {
     $erreur = 'Le fichier est trop gros...';
}
$msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
$msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
define('MAIL_SUJET', 'Envoie de fichier');
?>
</center>
        <font color="#0000FF">
            <CENTER>
    <?php
    if (empty($_POST'Nom'])) {
        $message .= "Veuillez indiquer votre nom<br />";
    }
    if (!empty($_POST'Email'])) {
        $_POST'Email'] = htmlspecialchars($_POST'Email']);
        if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
            $message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
    }
    else {
        $message .= "Veuillez indiquer votre Email<br />";
    }

    if (!empty($_POST'Emaill'])) {
        $_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
        if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
            $message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
    }
    else {
        $message .= "Veuillez indiquer votre Email de confirmation<br />";
    }
    if (strlen($message) > strlen($msg_erreur)) {
        echo $message;
    }
    else {
        foreach ($_POST as $index => $valeur)
        $$index = stripslashes(trim($valeur));
        $mail_entete = "MIME-Version: 1.0\r\n";
        $mail_entete .= "From: {$_POST'Nom']} ";
        $mail_entete .= "<{$_POST'Email']}>\r\n";
        $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
        $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
        $mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";

        $mail_corps .= "Fichier recu\n";
        $mail_corps .= "\n";
        $mail_corps .= "Nom : $Nom\n";
        $mail_corps .= "Email : $Email\n";
        $mail_corps .= "\n";
        $mail_corps .= "Les Fridolin's\n";
        $mail_corps .= "\n";
        $mail_corps .= "Email: tsf@saint-fridolin.com\n";
        $mail_corps .= "Site: www.saint-fridolin.com\n";
        if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
            echo $msg_ok;
        }
        else {
            echo "Une erreur est survenue lors de l'envoi du formulaire par email";
        }
    }
if(!isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
     $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
    if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
          echo 'Upload effectué avec succès !';
    }
     else{
          echo 'Echec de l\'upload !';
    }
}
else{
     echo $erreur;
}
?>
fab68200
Auteur

merci pour ta reponse mais je recois un message d erreur unexpected T_VARIABLE , ta une idée?

Merci pour ton aide

Change la fin du code:

if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
     $fichier = strtr($fichier,
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
    if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
          echo 'Upload effectué avec succès !';
    }
     else{
          echo 'Echec de l\'upload !';
    }
}
else{
     echo $erreur;
}
fab68200
Auteur

J ai toujours la meme erreur

A quel ligne?

<font size="4">
    <font color="#FF0000">
<center>
<?php
if (!empty($_POST) AND empty($_FILES)) {
    $dossier = 'resultat/';
    $fichier = basename($_FILES'avatar']'name']);
    $taille_maxi = 5000000;
    $taille = filesize($_FILES'avatar']'tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
    $extension = strrchr($_FILES'avatar']'name'], '.');
    if(!in_array($extension, $extensions)) {
         $erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
    }
    if($taille>$taille_maxi) {
         $erreur = 'Le fichier est trop gros...';
    }
    $msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
    $msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
    Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
    $message = $msg_erreur;
    define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
    define('MAIL_SUJET', 'Envoie de fichier');
    ?>
    </center>
            <font color="#0000FF">
                <CENTER>
        <?php
        if (empty($_POST'Nom'])) {
            $message .= "Veuillez indiquer votre nom<br />";
        }
        if (!empty($_POST'Email'])) {
            $_POST'Email'] = htmlspecialchars($_POST'Email']);
            if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
                $message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
        }
        else {
            $message .= "Veuillez indiquer votre Email<br />";
        }

        if (!empty($_POST'Emaill'])) {
            $_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
            if (0 === preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill']))
                $message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
        }
        else {
            $message .= "Veuillez indiquer votre Email de confirmation<br />";
        }
        if (strlen($message) > strlen($msg_erreur)) {
            echo $message;
        }
        else {
            foreach ($_POST as $index => $valeur)
            $$index = stripslashes(trim($valeur));
            $mail_entete = "MIME-Version: 1.0\r\n";
            $mail_entete .= "From: {$_POST'Nom']} ";
            $mail_entete .= "<{$_POST'Email']}>\r\n";
            $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
            $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
            $mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";

            $mail_corps .= "Fichier recu\n";
            $mail_corps .= "\n";
            $mail_corps .= "Nom : $Nom\n";
            $mail_corps .= "Email : $Email\n";
            $mail_corps .= "\n";
            $mail_corps .= "Les Fridolin's\n";
            $mail_corps .= "\n";
            $mail_corps .= "Email: tsf@saint-fridolin.com\n";
            $mail_corps .= "Site: www.saint-fridolin.com\n";
            if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
                echo $msg_ok;
            }
            else {
                echo "Une erreur est survenue lors de l'envoi du formulaire par email";
            }
        }
    if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
         $fichier = strtr($fichier,
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
        if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
              echo 'Upload effectué avec succès !';
        }
         else{
              echo 'Echec de l\'upload !';
        }
    }
    else{
         echo $erreur;
    }
}
?>
fab68200
Auteur

J ai prit t on nouveau code est maintenant j ai une page blanche

fab68200
Auteur

Je te donne aussi mon code du formulaire au cas ou

<form method="post" action="reception.php" enctype="multipart/form-data">
<center>
  <p><u>Veuillez taper votre Nom :</u></p>
        <p><input type="text" name="nom" required="required" /></p>
        <br/>
        <p><u>Veuillez taper votre Email :</u></p>
        <p><input type="text" name="email" required="required" /></p>
        <br/>
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" />
<p><u>Fichier :</u></p>
<input type="file" name="avatar" required="required" /><br/><br/>
<input type="submit" name="Envoyer" id="Envoyer" value="Envoyer"/>
</center>
</form>
fab68200
Auteur

Merci pour ton aide , mais j ai toujours une page blanche

En espérant que c'est bon:

<font size="4">
    <font color="#FF0000">
<center>
<?php
if (!empty($_POST) OR !empty($_FILES)) {
    $dossier = 'resultat/';
    $fichier = basename($_FILES'avatar']'name']);
    $taille_maxi = 5000000;
    $taille = filesize($_FILES'avatar']'tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '..xlsx', '.xls', '.wma', '.mp3', '.wav', '.pdf', '.txt', '.avi') ;
    $extension = strrchr($_FILES'avatar']'name'], '.');
    if(!in_array($extension, $extensions)) {
         $erreur = 'Vous devez uploder un fichier de type png, jpg, gif, jpeg, doc, docx, xls, xlsx, wma, mp3, wav, pdf, txt, avi <br/><br/>' ;
    }
    if($taille > $taille_maxi) {
         $erreur = 'Le fichier est trop gros...';
    }
    $msg_erreur = "Attention: les champs suivants doivent être obligatoirement corrigé:</font><br />";
    $msg_ok = "Votre envoie a bien été prise en compte.<br /></font>
    Un mail a été envoyé au Théâtre Saint-Fridolin.<br /></font>";
    $message = $msg_erreur;
    define('MAIL_DESTINATAIRE', 'tsf@saint-fridolin.com');
    define('MAIL_SUJET', 'Envoie de fichier');
}    
    ?>
    </center>
            <font color="#0000FF">
                <CENTER>
        <?php
if (!empty($_POST) OR !empty($_FILES)) {        
        if (empty($_POST'Nom'])) {
            $message .= "Veuillez indiquer votre nom<br />";
        }
        if (!empty($_POST'Email'])) {
            $_POST'Email'] = htmlspecialchars($_POST'Email']);
            if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Email']))
                $message .= 'L\'adresse Email ' . $_POST'Email'] . ' n\'est pas valide<br/>';
        }
        else {
            $message .= "Veuillez indiquer votre Email<br />";
        }

        if (!empty($_POST'Emaill'])) {
            $_POST'Emaill'] = htmlspecialchars($_POST'Emaill']);
            if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST'Emaill'])) {
                $message .= 'L\'adresse Email de confirmation ' . $_POST'Emaill'] . ' n\'est pas valide<br />';
            }
        }
        else {
            $message .= "Veuillez indiquer votre Email de confirmation<br />";
        }
        if (strlen($message) > strlen($msg_erreur)) {
            echo $message;
        }
        else {
            foreach ($_POST as $index => $valeur)
            $$index = stripslashes(trim($valeur));
            $mail_entete = "MIME-Version: 1.0\r\n";
            $mail_entete .= "From: {$_POST'Nom']} ";
            $mail_entete .= "<{$_POST'Email']}>\r\n";
            $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
            $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
            $mail_entete .= 'X-Mailer:PHP/' . phpversion() . "\r\n";

            $mail_corps .= "Fichier recu\n";
            $mail_corps .= "\n";
            $mail_corps .= "Nom : $Nom\n";
            $mail_corps .= "Email : $Email\n";
            $mail_corps .= "\n";
            $mail_corps .= "Les Fridolin's\n";
            $mail_corps .= "\n";
            $mail_corps .= "Email: tsf@saint-fridolin.com\n";
            $mail_corps .= "Site: www.saint-fridolin.com\n";
            if (mail(MAIL_DESTINATAIRE , MAIL_SUJET, $mail_corps, $mail_entete)) {
                echo $msg_ok;
            }
            else {
                echo "Une erreur est survenue lors de l'envoi du formulaire par email";
            }
        }
    if(isset($erreur) AND !isset($erreur) AND strlen($message) == strlen($msg_erreur)) {
         $fichier = strtr($fichier,
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/(^.a-z0-9]+)/i', '-', $fichier);
        if(move_uploaded_file($_FILES'avatar']'tmp_name'], $dossier . md5(uniqid(rand(), true)) . $extension)) {
              echo 'Upload effectué avec succès !';
        }
         else{
              echo 'Echec de l\'upload !';
        }
    }
    else{
         echo $erreur;
    }
}
?>