8722 sujets

Développement web côté serveur, CMS

Bonjour à tous voilà, je poste ce message car j'ai un souci lors de l'envois d'images (3) issues d'un formulaire et envoyées par mail.
Ce que j'ai fait : j'ai réussi à uploader des images dans un dossier nommé uploadraf, jusque là tout vas bien, j'ai renommé les images up1 up2 et up3 afin que les images uploadées puissent effacer les anciennes afin de ne pas surcharger le dossier si 2 personnes uploadent au même moment
ce n'est pas grave j'aurais toujours leurs mails pour les informer d'une erreur, mes problèmes actuels sont :
- La vérification des extensions ne marche pas peut importe l'extension l'image est quand même envoyée
- les images envoyées même si elles ont un nom différent se retrouvent toujours dans le même ordre (?!)
ainsi si l'image n°1 est envoyée sur le 2eme input, elle se retrouve en position n°1 dans le mail et cela est important pour moi
je ne sais pas pourkoi ... je réexplique j'ai img 1= un chat img 2= un chien img 3= un âne donc je reçois par mail 1:chat 2:chien 3:âne
jusque là tout vas bien mais si j'uploade (par le formulaire) img 1=un âne 2=un chien 3= un chat, je reçois toujours par mail
1:chat 2:chien 3:âne toujours dans cet ordre alors que chaque fichier a un nom distinct ( up1 up2 et up3 ) et je ne comprend pas pourquoi, merci de votre soutient, php c'est pas évident...
Cordialment, Raf
<p>
<form enctype="multipart/form-data" action="envois_gestion_test.php" method="post">
<label for="img"><span class="formulaire">vous devez nous envoyer<br/>
3 photos (au format jpeg ou jpg) du produit <br/>
comme indiqué ci-dessous :</span></label><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="3145728">
                    <span class="formulaire">- Une photo de l'étiquette :</span><br/>
<input type="file" name="img[]" required><br/>
                    <span class="formulaire">- Une photo de l'avant du produit :</span><br/>
<input type="file" name="img[]" required><br/>
<span class="formulaire">- Une photo de l'arrière :</span><br/>
<input type="file" name="img[]" required>
                     
                </p>


<?php
  
// déclaration des variables
      
$civilite = htmlspecialchars ($_POST['civilite']);
$nom = htmlspecialchars ($_POST['nom']);
$prenom = htmlspecialchars ($_POST['prenom']);
$adress = htmlspecialchars ($_POST['adress']);
$ville = htmlspecialchars ($_POST['ville']);
$cp = htmlspecialchars ($_POST['cp']);
$tel = htmlspecialchars ($_POST['tel']);
$email = htmlspecialchars ($_POST['email']);
$choix1 = htmlspecialchars ($_POST['choix1']);
$mark = htmlspecialchars ($_POST['mark']);
$taille = htmlspecialchars ($_POST['taille']);
$choix2 = htmlspecialchars ($_POST['choix2']);
$choix = htmlspecialchars ($_POST['choix']);
$com = htmlspecialchars ($_POST['com']);
      
 //Vérif champs vides  
if(!empty($_POST['civilite']))
if(!empty($_POST['nom']))
if(!empty($_POST['prenom']))
if(!empty($_POST['adress']))
if(!empty($_POST['ville']))
if(!empty($_POST['cp']))
if(!empty($_POST['tel']))
if(!empty($_POST['email']))
if(!empty($_POST['choix1']))
if(!empty($_POST['mark']))
if(!empty($_POST['taille']))
if(!empty($_POST['choix2']))
if(!empty($_POST['com']))
if(!empty($_FILES['img']))       
    {    
        
if (isset($_FILES['img']) AND $_FILES['img']['error'][0] == 0)
{
        // Testons si le fichier n'est pas trop gros
        if ($_FILES['img']['size'][0] <= 3145728)
      {
                // Test si l'extension est autorisée
               $infosfichier = pathinfo($_FILES['img']['name'][0]);
               $extension_upload = $infosfichier['extension'];
               $extensions_autorisees = array('jpg', 'jpeg');
                if (in_array($extension_upload, $extensions_autorisees))
               {
                        // On valide le fichier et on le stocke définitivement - attention si upload même nom = écrasé
                       move_uploaded_file($_FILES['img']['tmp_name'][0], 'uploadraf/up1.jpg');
                       move_uploaded_file($_FILES['img']['tmp_name'][1], 'uploadraf/up2.jpg');
                       move_uploaded_file($_FILES['img']['tmp_name'][2], 'uploadraf/up3.jpg');
                       //echo "UPLOAD == OK !";
                }
                //else {echo "Envoyez un fichier du type .jpg svp.";}
        }
        //else { echo "Envoyez un fichier plus petit que 3.5Mo."; }
}
     
    $destinataire = 'monmail@gmail.com';
      
    if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
    { $passage_ligne = "\r\n"; }
    else
    { $passage_ligne = "\n"; }
      
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
      
    $sujet = "Proposition d'achat site.com";
      
    $headers = "From: Site site.com <mail@server.com>".$passage_ligne;
    $headers .= "Mime-Version: 1.0" .$passage_ligne;
    $headers.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
      
$content.= $passage_ligne."--".$boundary.$passage_ligne;
$content.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$content.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$content.= $passage_ligne;
$content.= '
    <! DOCTYPE html>
    <html lang=\"fr\">
    <head>
    <meta Content-Type:text/css; />
    <style type=\"text/css\">
        span {
        display: block;
        width: 45%;
        height: 100%;
        padding: 2% 2% 3% 2%;
        font-family: arial,sans-serif;
        font-size: 14px;
        font-weight: bold;
        border: 4px solid grey;
        border-radius: 6px;
        color: black; }
        b {
        font-size: 14px;      
        color: #3362B4;
        text-decoration: underline; }
        p {
        font-family: arial,sans-serif;
        font-size: 14px;
        font-weight: bold;
        color: black;
        margin: 0%; }
        i {
        font-size: 12px;
        color: grey;
        }
        img {
        display: block;
        width:12em;
        height:auto;
        }
    </style>
    </head>
        <body>
            <span>
                <b>Une personne désire vendre sur votre site</b><br/>
                <p>Proposition de : '.$civilite.' '.$nom.' '.$prenom.'</p><br/>
          
                <b>Ses coordonnées :</b><br/>
                <p>
                '.$nom.' '.$prenom.'<br/>
                '.$adress.'<br/>
                '.$cp.' '.$ville.'<br/>
                Tel : '.$tel.'<br/>
                Mail : '.$email.'<br/>
                <i>Cliquez sur l\'adresse mail ci-dessus pour répondre</i>
                </p><br/>
                <b>Sa proposition de vente :</b><br/>
                <p>Type de vêtement : '.$choix1.'<br/>
                Marque : '.$mark.'<br/>
                Taille : '.$taille.'<br/>
                Etat produit : '.$choix2.'
                Rachat/Dépôt-vente : '.$choix.'
                </p><br/>
                <b>Commentaire ou prix de vente souhaité :</b><br/>
                <p>'.$com.'</p><br/>
                <b>Photo de l\'étiquette produit :</b><br/><br/>
                <img src="http://site.com/uploadraf/up1.jpg" /><br/>
                <b>Photo avant :</b><br/><br/>
                <img src="http://site.com/uploadraf/up2.jpg" /><br/>
                <b>Photo arrière :</b><br/><br/>
                <img src="http://site.com/uploadraf/up3.jpg" /><br/>
            </span>
        </body>
    </html>';
$content.= $passage_ligne;
  
$content.= $passage_ligne;
 
    if (mail($destinataire,$sujet,$content,$headers))
      
      { echo '
            <html style="background-color: #021391;">
                <head>
                    <meta charset= "utf-8">
                </head>
                <body>
                    <h1 style="text-align:center;
                    font-size: 3em;
                    color: rgb(252, 234, 33);
                    margin: 20% 0 0% 0;
                    text-shadow: 2px 2px 6px black;
                    ">Message envoyé !</h1>
                </body>
            </html> ' ;
         
        header ("Refresh: 1;URL=http://site.com");
      }
       
}
  
else {
        { echo '
                  
                <html style="background-color: #021391;">
                    <head>
                        <meta charset=" UTF-8">
                    </head>
                    <body>
                        <h1  style="text-align:center;
                            font-size: 3em;
                            color: rgb(252, 234, 33);
                            margin: 20% 0 0% 0;
                            text-shadow: 2px 2px 6px black;"
                            >Une erreur s\'est produite, réessayez s\'il vous plait .</h1>
                    </body>
                </html> ' ;
        header ("Refresh: 2;URL=http://site.com/index.php?controller=envois");
                }          
    }
?>
Salut,

C'est sale. Utilise des fonctions afin de découper ton code. Ça sera beaucoup plus facile de t'aider, et pour toi également.
Oui, si on veut, l'indentation ne se réplique pas lorsque je colle mon code,
des fonctions, je maîtrise pas trop, en plus y a pas grand chose à mettre dedans,
je vérifie que l'upload n'est pas vide, je vérifie les extensions puis je déplace les images
dans un fichier temporaire, créer des fonctions n'allégera pas trop le code,
merci de ton intérêt,
Cordialement