Comment récupérer un fichier d'un formulaire $_FILES ?

Résolu/Fermé
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 - Modifié le 11 févr. 2022 à 12:44
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 - 17 févr. 2022 à 14:19
Bonjour, c'est encore moi :P

Je suis encore sur le même formulaire, il avance doucement mais sûrement. Je récupère toutes les données du formulaire, sauf le fichier. Avant j'avais mis un $_post le fichier, mais je récupérais uniquement le nom du fichier.

Je me suis renseigné et il faut passer par un $_FILES. J'ai regardé un tuto, mais mon formulaire est beaucoup plus conséquent et donc plus difficile à mettre en place. C'est pour cela que j'ai besoin de votre aide pour mettre en place cela et surtout devenir un maitre du PHP ^^. En effet je débute ce langage.

Je fais ça avec un serveur apache en local host, je ne sais pas si ça peut être une bonne information.

Pour débuter j'ai bien mis le fameux enctype="multipart/form-data"

<form enctype="multipart/form-data" action="" method="post">


Donc voici la partie du formulaire où j'ai introduit l'input de type "file"

<label for="fichier">Importez vos fichiers ici</br></label>
       <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
       <input type="file" id="fichier" name="fichier" class="fichier" accept="image/png, image/jpeg, .ai,
       .eps, .pdf, .svg">


Et voici la partie PHP pour récupérer le fichier

$fichier=$_POST['fichier'];
  $_FILES['fichier']=$fichier;


et ça c'est la partie où j'affiche le résultat sur une autre page

echo $_FILES['fichier']['name']


Avec tout ça je me ramasse comme message que "fichier" n'est pas défini et aussi Notice: Trying to access array offset on value of type null


Voici le code complet pour les curieux ^^

<?php
 //On démarre une nouvelle session
   session_start();
   
 //Boutton fermer1 
   if(isset($_POST['fermer1'])){
    header('Location: #');
    $_SESSION = array();
    
   }
   
   //Boutton fermer2
   if(isset($_POST['fermer2'])){
    header('Location: #');
    $_SESSION = array();
    
   }
   
   //Boutton fermer3
   if(isset($_POST['fermer3'])){
    header('Location: #');
    $_SESSION = array();
    
   }
 
   //Formulaire 1
   //Si on appuie sur le bouton "suivant"
   if(isset($_POST['suivant'])){
    //On récupère les données dans $_POST

     $modele=$_POST['modele'];
     $taille=$_POST['taille'];
     $couleur=$_POST['couleur'];
     $quantite=$_POST['quantite'];
  
     //On définit des variables de session
     $_SESSION['modele'] = $modele;
     $_SESSION['taille'] = $taille;
     $_SESSION['couleur'] = $couleur;
     $_SESSION['quantite'] = $quantite;
     
    //Si on ne sélectionne pas une quantité
     if($quantite == false){
      $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>";
     }
     else{
     // On va sur le formulaire 2
     header ('Location: #demo2');
     die();
     }
   }
   
   //Formulaire 2
   //Si on appuie sur le bouton "suivant"
      if(isset($_POST['suivant1'])){
       //On récupère les données dans $_POST
        $qualite=$_POST['qualite'];
        $zone=$_POST['zone'];
        $impression=$_POST['impression'];
        $fichier=$_POST['fichier'];
  $_FILES['fichier']=$fichier;
        
        //On définit des variables de session
        $_SESSION['qualite'] = $qualite;
        $_SESSION['zone'] = $zone;
        $_SESSION['impression'] = $impression;
        //$_SESSION['fichier'] = $fichier;
  
  // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
  /*if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
  {
  }*/
  
  //Si l'utilisateur n'envoie pas de fichier
  if(empty($_FILES['fichier'])){
   $erreurFichier="<h4>Veuillez ajouter un fichier</h4>";
  }
  else{
   // On va sur le formulaire 3
   header('Location: #demo3');
  }
      }
      
      //Si on appuie sur le bouton "Précèdent"
      if(isset($_POST['retour1'])){
       // On va sur la formulaire 1
       header('Location: #demo1');
       die();
      }
   
  //Formulaire 3 
  //Si on appuie sur le bouton "suivant"
  if(isset($_POST['suivant2'])){
   //On récupère les données dans $_POST
    $prenom=$_POST['prenom'];
    $nom=$_POST['nom'];
    $email=$_POST['email'];
    $telephone=$_POST['telephone'];
    $client=$_POST['client'];
    $precision=$_POST['precision'];
    
    $_SESSION['prenom'] = $prenom;
    $_SESSION['nom'] = $nom;
    $_SESSION['email'] = $email;
    $_SESSION['telephone'] = $telephone;
    $_SESSION['client'] = $client;
    $_SESSION['precison'] = $precision;
 
 //Envoie du formulaire
 // C'est l'adresse ou va être envoyé les données du formulaire
  $to = "fabio.cecere2509@gmail.com"; 
  //adresse de l'utilisateur
  $from = $_SESSION['email'];
  $subject = "Soumission du formulaire";
  $subject2 = "Copie de votre formulaire de soumission";
  $message = $_SESSION['prenom'] . " " . $_SESSION['nom'];
  $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom'];
  
 //adresse de l'utilisateur qui envoie le mail
 $headers = "From:" . $from;
 //adresse de l'entreprise
    $headers2 = "From:" . $to;
    
   if($prenom == false || $nom == false || $email == false || $telephone == false){
     $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>";
    }
    
    else{
  //envoie du formulaire
  /*if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){
   //header('Location: #');
   echo "Votre message a bien été envoyé";
   $_SESSION = array();*/
    header('Location: recupDataTest.php');
  }
  /*else{ //non envoyer
   //header('Location: #');
   echo "Votre message n'a pas pu être envoyé";
   $_SESSION = array();
  }*/
    
  }
  
  //Si on appuie sur le bouton "Précèdent"
  if(isset($_POST['retour2'])){
   // On va sur le formulaire 2"
   header('Location: #demo2');
   die();
  }
?>

<!DOCTYPE htlm>
<html lang="fr">
 <head>
   <meta charset="utf-8"/>
   <meta http-equiv="X_UA-Compatible" content="IE=edge">
   <title>Formulaire de devis</title>
   <style>
    
      #quantite{
    width:3.5em;
      }
      
      select option[value="bleu"]{
    background: blue;
      }
      select option[value="rouge"]{
    background: red;
      }
      select option[value="vert"]{
    background: green;
      }
      h4{
    color: red;
      }
      
      a {
       margin-top: 10px;
      margin: 44%;
      text-decoration: none;
      padding: 15px;
      background-color: white;
      border-radius: 5px;
      text-transform: uppercase;
      color: black;
      border: solid black;
      }
      a:hover{
    background-color: black;
    color: white;
      }
      
      .modal1 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal1:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content1 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }
    .modal_close {
      position: absolute;
      top: 10px;
      right: 10px;
      color: grey;
      text-decoration: none;
      border: solid white;
      background: white;
    }
    .modal_close:hover{
    color: black;
    background: lightgrey;
    }
    .modal2 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal2:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content2 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }

    .modal3 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal3:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content3 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }
    
  </style>
 </head>
 <body>
  <a href="#demo1">Devis Express</a>
 
   <!--Formulaire 1 -->
  <div id="demo1" class="modal1">
   <div class="modal_content1">
      <h1>Votre demande de devis</h1>
      <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
      <h2>Vos besoins (Total de 10 pièces minimum)</h2>
      <form enctype="multipart/form-data" action="" method="post">
     
     <input type="submit" name="fermer1" class="modal_close" value="x"/>
     <p>
       <?php
        $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL;
       ?>
      <label for="modele">Modèle</label>
      <select name="modele" id="modele"/>
         <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>>T-shirts</option>
         <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option>
         <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option>
      </select>
     
      <label for="quantite">Quantité</label> 
      <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/>
      <br></br> 
     </p>

     <p>
       <?php
        $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL;
       ?>
      <label for="taille">Taille</label>
      <select name="taille" id="taille"/>
         <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option>
         <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option>
         <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option>
         <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option>
         <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option>
      </select>
      
       <?php
        $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL;
       ?>
      <label for="couleur">Couleur</label>
      <select name="couleur" id="couleur">
         <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option>
         <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option>
         <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option>
      </select>
     </p>
    
     <p>
      <input type="submit" name="suivant" value="Suivant"/> 
     </p>
       <?php
        //Si le formulaire n'est pas rempli, on affiche le message d'erreur
         if (isset($afficheErreur1)){
       echo $afficheErreur1;
        if(empty($_SESSION['quantite'])){
         echo "<style>.quantite{background: #ffbdb0}</style>";
        }       
        else{
         echo "<style>.quantite{background: white;}</style>";
        }
        }
       ?> 
    </form>
   </div>
  </div>
 
   <!--Formulaire 2 -->
  <div id="demo2" class="modal2">
   <div class="modal_content2">
      <h1>Votre demande de devis</h1>
      <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
      <h2>Infos supplémentaires pour impression</h2>
      <form action="" method="post">
      <input type="submit" name="fermer2" class="modal_close" value="x"/>
    <p>
      <?php
       $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL;
      ?>
     <label for="qualite">Qualité</br></label>
     <select name="qualite" id="qualite">
        <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option>
        <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option>
        <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option>
     </select>
    </p>
  
    <p>
       <?php
        $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL;
       ?>
     <label for="zone">Zone de personnalisation</br></label>
     <select name="zone" id="zone">
        <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option>
        <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option>
        <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option>
     </select>
    </p>
  
    <p>
     <label for="impression">Technique d'impression</br></label>
       <?php
        $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL;
       ?>
     <select name="impression" id="impression">
        <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option>
        <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option>
        <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option>
        <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option>
        <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option>
        <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option>
     </select>
    </p>
     
    <p>
       <label for="fichier">Importez vos fichiers ici</br></label>
       <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
       <input type="file" id="fichier" name="fichier" class="fichier" accept="image/png, image/jpeg, .ai,
       .eps, .pdf, .svg">
       
       <?php
      /*if(isset($erreurFichier)){
       echo $erreurFichier;
       if(empty($_FILES['fichier'])){
        echo "<style>.fichier{background: #ffbdb0;}</style>";
       }
       else{
        echo "<style>.fichier{background: white;}</style>";
       }
      }*/
       ?>
    </p>
  
    <p>
       <input type="submit" name="retour1" value="Précèdent"/>
       <input type="submit" name="suivant1" value="Suivant"/>
    </p>
    </form>
   </div>
  </div>

   <!--Formulaire 3 -->
  <div id="demo3" class="modal3">
   <div class="modal_content3">
   <h1>Votre demande de devis</h1>
     <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
     <h2>Informations et précisions</h2>
   <form action="" method="post">
    <input type="submit" name="fermer3" class="modal_close" value="x"/>
    <p>
     <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/>
     <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/>
     <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/>
    </p>
   
    <p>
     <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/>
     <?php
      $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL;
     ?>
     <select name="client" id="client">
       <option value="Particulier"  <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option>
       <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option>
       <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option>
     </select>

    </p>
   
    <p>
     <textarea id="precision" name="precision" rows="5" cols="40" 
     placeholder="Précision">
     <?php
      if (isset($_SESSION['precision'])){echo $_SESSION['precision'];}
     ?>
     </textarea>
    </p>
   
    <p>
     <input type="submit" name="retour2" value="Précèdent"/>
     <input type="submit" name="suivant2" value="Envoyer"/>
    </p>
      <?php
       //Si le formulaire n'est pas rempli, on affiche le message d'erreur
       //et on affiche la case en rouge
     if (isset($afficheErreur2)){
      echo $afficheErreur2;
       if(empty($_SESSION['prenom'])){
       echo "<style>.prenom{background: #ffbdb0;}</style>";
       }
       else{
        echo "<style>.prenom{background: white;}</style>";
       }
        if(empty($_SESSION['nom'])){
        echo "<style>.nom{background: #ffbdb0;}</style>";
        }
        else{
         echo "<style>.prenom{background: white;}</style>";
        }
         if(empty($_SESSION['email'])){
         echo "<style>.email{background: #ffbdb0;}</style>";
         }
         else{
          echo "<style>.email{background: white;}</style>";
         }
         if(empty($_SESSION['telephone'])){
          echo "<style>.telephone{background: #ffbdb0;}</style>";
         }
         else{
          echo "<style>.telephone{background: white;}</style>";
         }
       }
      ?> 
   </form>
   </div>
  </div>
 </body>
</html>


Et le code de la page de renvoi

<?php
 session_start();
?>

<?php

 echo $_SESSION['modele'] . "</br>" . $_SESSION['taille'] . "</br>" . $_SESSION['couleur']
 . "</br>" . $_SESSION['quantite'] . "</br>" . $_SESSION['qualite'] . "</br>" .
 $_SESSION['zone'] . "</br>" . $_SESSION['impression'] . "</br>" . $_FILES['fichier']['name'] .
 "</br>" . $_SESSION['prenom'] . "</br>" . $_SESSION['nom'] . "</br>" . $_SESSION['email'] . 
 "</br>" . $_SESSION['telephone'] . "</br>" . $_SESSION['client'] . "</br>" . $_SESSION['precison'];
 
   session_unset();
  
  //On détruit la session
  session_destroy();
?>


S'il vous plaît help >.<
A voir également:

9 réponses

jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
11 févr. 2022 à 12:56
Bonjou
Supprime c'est ligne de code

$fichier=$_POST['fichier'];
$_FILES['fichier']=$fichier;



1
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
11 févr. 2022 à 12:58
Et regarde comment on upload un fichier sur un serveur en PHP...
Il te manque a minima, la fonction move_uploaded_file
1
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
11 févr. 2022 à 13:03
Oh super, je vais regarder merci !!!!!! ^^
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
11 févr. 2022 à 13:40
Donc voilà, je me suis renseigné et j'ai fait ceci

// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
			if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
			{

				   // Testons si le fichier n'est pas trop gros

				   if ($_FILES['fichier']['size'] <= 1000000)

				   {

						   // Testons si l'extension est autorisée

						   $infosfichier = pathinfo($_FILES['fichier']['name']);

						   $extension_upload = $infosfichier['extension'];

						   $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');

						   if (in_array($extension_upload, $extensions_autorisees))

						   {

								   // On peut valider le fichier et le stocker définitivement

								   move_uploaded_file($_FILES['fichier']['tmp_name'],  'uploads/' . basename($_FILES['fichier']['name']));

								   echo "L'envoi a bien été effectué !";

						   }

				   }
			}


Cependant, c'est bizarre, mais au lancement je ne vois pas les tests que j'effectue.

Et après comment faire pour afficher le résultas sur une autre page ?
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
11 févr. 2022 à 14:50
bonjour,
peut-être ajouter des
else
et y faire
echo()
?
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024
14 févr. 2022 à 09:38
Bonjour, me revoilà.

Oui j'ai essayé, mais aucun affichage. En vrai je suis un peu perdu, j'ai beau chercher de la documentation, mais ce n'est jamais très clair. Est-ce que vous avez de la documentation sur comment utiliser $_FILES ou m'expliquer comment ça fonctionne. Est-ce que je m'y prend bien, comment pourrais-je l’améliorer ?
Merci beaucoup.
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
17 févr. 2022 à 12:04
Ligne 17 j'ai oublié une parenthèse fermante
1
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
14 févr. 2022 à 10:00
Bonjour,

Je pense qu'il faudrait déjà nous montrer le code COMPLET de tes fichiers et pas seulement des petits bouts ..
ça nous permettrait de nous rendre compte comment tu as mis en place tout ça, dans quel ordre ...

N'oublies pas de nous préciser le nom de chaque fichier dont tu nous montreras le code..
(d'après ce que je peux voir de ton code, il ne doit y en avoir qu'un seul .. qui contient le formulaire html ET le code php )

0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
Modifié le 14 févr. 2022 à 10:14
Oui, c'est ça, j'ai juste deux codes...

1) Index.php qui contient tout le code, php et html.

<?php
 //On démarre une nouvelle session
   session_start();
   
 //Boutton fermer1 
   if(isset($_POST['fermer1'])){
    header('Location: #');
    $_SESSION = array();
    
   }
   
   //Boutton fermer2
   if(isset($_POST['fermer2'])){
    header('Location: #');
    $_SESSION = array();
    
   }
   
   //Boutton fermer3
   if(isset($_POST['fermer3'])){
    header('Location: #');
    $_SESSION = array();
    
   }
 
   //Formulaire 1
   //Si on appuie sur le bouton "suivant"
   if(isset($_POST['suivant'])){
    //On récupère les données dans $_POST

     $modele=$_POST['modele'];
     $taille=$_POST['taille'];
     $couleur=$_POST['couleur'];
     $quantite=$_POST['quantite'];
  
     //On définit des variables de session
     $_SESSION['modele'] = $modele;
     $_SESSION['taille'] = $taille;
     $_SESSION['couleur'] = $couleur;
     $_SESSION['quantite'] = $quantite;
     
    //Si on ne sélectionne pas une quantité
     if($quantite == false){
      $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>";
     }
     else{
     // On va sur le formulaire 2
     header ('Location: #demo2');
     die();
     }
   }
   
   //Formulaire 2
   //Si on appuie sur le bouton "suivant"
      if(isset($_POST['suivant1'])){
       //On récupère les données dans $_POST
        $qualite=$_POST['qualite'];
        $zone=$_POST['zone'];
        $impression=$_POST['impression'];
        //$fichier=$_POST['fichier'];
  //$_FILES['fichier']=$fichier;
        
        //On définit des variables de session
        $_SESSION['qualite'] = $qualite;
        $_SESSION['zone'] = $zone;
        $_SESSION['impression'] = $impression;
        //$_SESSION['fichier'] = $fichier;
  
  // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
  /*if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
  {
  }*/
  
  //Si l'utilisateur n'envoie pas de fichier
  /*if(empty($_FILES['fichier'])){
   $erreurFichier="<h4>Veuillez ajouter un fichier</h4>";
  }
  else{*/
   // On va sur le formulaire 3
   header('Location: #demo3');
  //}
      }
      
      //Si on appuie sur le bouton "Précèdent"
      if(isset($_POST['retour1'])){
       // On va sur la formulaire 1
       header('Location: #demo1');
       die();
      }
   
  //Formulaire 3 
  //Si on appuie sur le bouton "suivant"
  if(isset($_POST['suivant2'])){
   //On récupère les données dans $_POST
    $prenom=$_POST['prenom'];
    $nom=$_POST['nom'];
    $email=$_POST['email'];
    $telephone=$_POST['telephone'];
    $client=$_POST['client'];
    $precision=$_POST['precision'];
    
    $_SESSION['prenom'] = $prenom;
    $_SESSION['nom'] = $nom;
    $_SESSION['email'] = $email;
    $_SESSION['telephone'] = $telephone;
    $_SESSION['client'] = $client;
    $_SESSION['precison'] = $precision;
 
 //Envoie du formulaire
 // C'est l'adresse ou va être envoyé les données du formulaire
  $to = "fabio.cecere2509@gmail.com"; 
  //adresse de l'utilisateur
  $from = $_SESSION['email'];
  $subject = "Soumission du formulaire";
  $subject2 = "Copie de votre formulaire de soumission";
  $message = $_SESSION['prenom'] . " " . $_SESSION['nom'];
  $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom'];
  
 //adresse de l'utilisateur qui envoie le mail
 $headers = "From:" . $from;
 //adresse de l'entreprise
    $headers2 = "From:" . $to;
    
   if($prenom == false || $nom == false || $email == false || $telephone == false){
     $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>";
    }
    
    else{
  //envoie du formulaire
  /*if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){
   //header('Location: #');
   echo "Votre message a bien été envoyé";
   $_SESSION = array();*/
    header('Location: recupDataTest.php');
  }
  /*else{ //non envoyer
   //header('Location: #');
   echo "Votre message n'a pas pu être envoyé";
   $_SESSION = array();
  }*/
    
  }
  
  //Si on appuie sur le bouton "Précèdent"
  if(isset($_POST['retour2'])){
   // On va sur le formulaire 2"
   header('Location: #demo2');
   die();
  }
?>

<!DOCTYPE htlm>
<html lang="fr">
 <head>
   <meta charset="utf-8"/>
   <meta http-equiv="X_UA-Compatible" content="IE=edge">
   <title>Formulaire de devis</title>
   <style>
    
      #quantite{
    width:3.5em;
      }
      
      select option[value="bleu"]{
    background: blue;
      }
      select option[value="rouge"]{
    background: red;
      }
      select option[value="vert"]{
    background: green;
      }
      h4{
    color: red;
      }
      
      a {
       margin-top: 10px;
      margin: 44%;
      text-decoration: none;
      padding: 15px;
      background-color: white;
      border-radius: 5px;
      text-transform: uppercase;
      color: black;
      border: solid black;
      }
      a:hover{
    background-color: black;
    color: white;
      }
      
      .modal1 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal1:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content1 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }
    .modal_close {
      position: absolute;
      top: 10px;
      right: 10px;
      color: grey;
      text-decoration: none;
      border: solid white;
      background: white;
    }
    .modal_close:hover{
    color: black;
    background: lightgrey;
    }
    .modal2 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal2:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content2 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }

    .modal3 {
     visibility: hidden;
     opacity: 0;
     position: absolute;
     top: 0; right: 0;
     bottom: 0; left: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(77, 77, 77, .7);
     transition: all .4s;
      }
      .modal3:target {
      visibility: visible;
      opacity: 1;
    }
    .modal_content3 {
      border-radius: 4px;
      position: relative;
      width: 500px;
      max-width: 90%;
      background: white;
      padding: 1.5em 2em;
    }
    
  </style>
 </head>
 <body>
  <a href="#demo1">Devis Express</a>
 
   <!--Formulaire 1 -->
  <div id="demo1" class="modal1">
   <div class="modal_content1">
      <h1>Votre demande de devis</h1>
      <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
      <h2>Vos besoins (Total de 10 pièces minimum)</h2>
      <form enctype="multipart/form-data" action="" method="post">
     
     <input type="submit" name="fermer1" class="modal_close" value="x"/>
     <p>
       <?php
        $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL;
       ?>
      <label for="modele">Modèle</label>
      <select name="modele" id="modele"/>
         <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>>T-shirts</option>
         <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option>
         <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option>
      </select>
     
      <label for="quantite">Quantité</label> 
      <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/>
      <br></br> 
     </p>

     <p>
       <?php
        $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL;
       ?>
      <label for="taille">Taille</label>
      <select name="taille" id="taille"/>
         <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option>
         <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option>
         <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option>
         <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option>
         <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option>
      </select>
      
       <?php
        $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL;
       ?>
      <label for="couleur">Couleur</label>
      <select name="couleur" id="couleur">
         <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option>
         <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option>
         <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option>
      </select>
     </p>
    
     <p>
      <input type="submit" name="suivant" value="Suivant"/> 
     </p>
       <?php
        //Si le formulaire n'est pas rempli, on affiche le message d'erreur
         if (isset($afficheErreur1)){
       echo $afficheErreur1;
        if(empty($_SESSION['quantite'])){
         echo "<style>.quantite{background: #ffbdb0}</style>";
        }       
        else{
         echo "<style>.quantite{background: white;}</style>";
        }
        }
       ?> 
    </form>
   </div>
  </div>
 
   <!--Formulaire 2 -->
  <div id="demo2" class="modal2">
   <div class="modal_content2">
      <h1>Votre demande de devis</h1>
      <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
      <h2>Infos supplémentaires pour impression</h2>
      <form action="" method="post">
      <input type="submit" name="fermer2" class="modal_close" value="x"/>
    <p>
      <?php
       $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL;
      ?>
     <label for="qualite">Qualité</br></label>
     <select name="qualite" id="qualite">
        <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option>
        <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option>
        <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option>
     </select>
    </p>
  
    <p>
       <?php
        $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL;
       ?>
     <label for="zone">Zone de personnalisation</br></label>
     <select name="zone" id="zone">
        <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option>
        <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option>
        <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option>
     </select>
    </p>
  
    <p>
     <label for="impression">Technique d'impression</br></label>
       <?php
        $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL;
       ?>
     <select name="impression" id="impression">
        <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option>
        <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option>
        <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option>
        <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option>
        <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option>
        <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option>
     </select>
    </p>
     
    <p>
       <label for="fichier">Importez vos fichiers ici</br></label>
       <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />-->
       <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai,
       .eps, .pdf, .svg">-->
       
       <?php
   // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
   if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
   {

       // Testons si le fichier n'est pas trop gros

       if ($_FILES['fichier']['size'] <= 1000000)

       {

         // Testons si l'extension est autorisée

         $infosfichier = pathinfo($_FILES['fichier']['name']);

         $extension_upload = $infosfichier['extension'];

         $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png','pdf');

         if (in_array($extension_upload, $extensions_autorisees))

         {

           // On peut valider le fichier et le stocker définitivement

           move_uploaded_file($_FILES['fichier']['recupDataTest.php'],  'uploads/' . basename($_FILES['fichier']['name']));

           echo "L'envoi a bien été effectué !";

         }

       }
   }
       ?>
       
       <?php
      /*if(isset($erreurFichier)){
       echo $erreurFichier;
       if(empty($_FILES['fichier'])){
        echo "<style>.fichier{background: #ffbdb0;}</style>";
       }
       else{
        echo "<style>.fichier{background: white;}</style>";
       }
      }*/
       ?>
    </p>
  
    <p>
       <input type="submit" name="retour1" value="Précèdent"/>
       <input type="submit" name="suivant1" value="Suivant"/>
    </p>
    </form>
   </div>
  </div>

   <!--Formulaire 3 -->
  <div id="demo3" class="modal3">
   <div class="modal_content3">
   <h1>Votre demande de devis</h1>
     <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
     <h2>Informations et précisions</h2>
   <form action="" method="post">
    <input type="submit" name="fermer3" class="modal_close" value="x"/>
    <p>
     <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/>
     <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/>
     <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/>
    </p>
   
    <p>
     <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/>
     <?php
      $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL;
     ?>
     <select name="client" id="client">
       <option value="Particulier"  <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option>
       <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option>
       <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option>
     </select>

    </p>
   
    <p>
     <textarea id="precision" name="precision" rows="5" cols="40" 
     placeholder="Précision">
     <?php
      if (isset($_SESSION['precision'])){echo $_SESSION['precision'];}
     ?>
     </textarea>
    </p>
   
    <p>
     <input type="submit" name="retour2" value="Précèdent"/>
     <input type="submit" name="suivant2" value="Envoyer"/>
    </p>
      <?php
       //Si le formulaire n'est pas rempli, on affiche le message d'erreur
       //et on affiche la case en rouge
     if (isset($afficheErreur2)){
      echo $afficheErreur2;
       if(empty($_SESSION['prenom'])){
       echo "<style>.prenom{background: #ffbdb0;}</style>";
       }
       else{
        echo "<style>.prenom{background: white;}</style>";
       }
        if(empty($_SESSION['nom'])){
        echo "<style>.nom{background: #ffbdb0;}</style>";
        }
        else{
         echo "<style>.prenom{background: white;}</style>";
        }
         if(empty($_SESSION['email'])){
         echo "<style>.email{background: #ffbdb0;}</style>";
         }
         else{
          echo "<style>.email{background: white;}</style>";
         }
         if(empty($_SESSION['telephone'])){
          echo "<style>.telephone{background: #ffbdb0;}</style>";
         }
         else{
          echo "<style>.telephone{background: white;}</style>";
         }
       }
      ?> 
   </form>
   </div>
  </div>
 </body>
</html>


2) RecupDataTest.php C'est juste une page de test, pour voir si je récupère bien toutes les données du formulaire.

<?php
 session_start();
?>

<?php

 echo $_SESSION['modele'] . "</br>" . $_SESSION['taille'] . "</br>" . $_SESSION['couleur']
 . "</br>" . $_SESSION['quantite'] . "</br>" . $_SESSION['qualite'] . "</br>" .
 $_SESSION['zone'] . "</br>" . $_SESSION['impression'] . "</br>" . $_SESSION['fichier'] .
 "</br>" . $_SESSION['prenom'] . "</br>" . $_SESSION['nom'] . "</br>" . $_SESSION['email'] . 
 "</br>" . $_SESSION['telephone'] . "</br>" . $_SESSION['client'] . "</br>" . $_SESSION['precison'];
 
   session_unset();
  
  //On détruit la session
  session_destroy();
?>
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
14 févr. 2022 à 10:15
Pour ce qui est de la partie du code pour le fichier il faut allez à partir de la ligne 402.
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
14 févr. 2022 à 10:29
je ne vois aucun else dans la partie du code pour le fichier.
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
14 févr. 2022 à 11:31
Là où est placé ton code de récupération du fichier .. il ne risque pas de s'exécuter !!!!
Il faut le mettre là où tu traites ton submit ...
En plus il y a des erreurs dedans .. et il manque, en effet, quelques ELSE pour avoir des messages en cas d'erreur..

Je te propose ceci:
<?php
//On démarre une nouvelle session
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//Boutton fermer1 
if (isset($_POST['fermer1'])) {
  header('Location: #');
  $_SESSION = array();
}

//Boutton fermer2
if (isset($_POST['fermer2'])) {
  header('Location: #');
  $_SESSION = array();
}

//Boutton fermer3
if (isset($_POST['fermer3'])) {
  header('Location: #');
  $_SESSION = array();
}

//Formulaire 1
//Si on appuie sur le bouton "suivant"
if (isset($_POST['suivant'])) {
  //On récupère les données dans $_POST

  $modele = $_POST['modele'];
  $taille = $_POST['taille'];
  $couleur = $_POST['couleur'];
  $quantite = $_POST['quantite'];

  //On définit des variables de session
  $_SESSION['modele'] = $modele;
  $_SESSION['taille'] = $taille;
  $_SESSION['couleur'] = $couleur;
  $_SESSION['quantite'] = $quantite;

  //Si on ne sélectionne pas une quantité
  if ($quantite == false) {
    $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>";
  } else {
    // On va sur le formulaire 2
    header('Location: #demo2');
    die();
  }
}

//Formulaire 2
//Si on appuie sur le bouton "suivant"
if (isset($_POST['suivant1'])) {
  //On récupère les données dans $_POST
  $qualite = $_POST['qualite'];
  $zone = $_POST['zone'];
  $impression = $_POST['impression'];
  //$fichier=$_POST['fichier'];
  //$_FILES['fichier']=$fichier;
  //On définit des variables de session
  $_SESSION['qualite'] = $qualite;
  $_SESSION['zone'] = $zone;
  $_SESSION['impression'] = $impression;
  //$_SESSION['fichier'] = $fichier;
  // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
  /* if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
    {
    } */

  //Si l'utilisateur n'envoie pas de fichier
  /* if(empty($_FILES['fichier'])){
    $erreurFichier="<h4>Veuillez ajouter un fichier</h4>";
    }
    else{ */
  // On va sur le formulaire 3
  header('Location: #demo3');
  //}
}

//Si on appuie sur le bouton "Précèdent"
if (isset($_POST['retour1'])) {
  // On va sur la formulaire 1
  header('Location: #demo1');
  die();
}

//Formulaire 3 
//Si on appuie sur le bouton "suivant"
if (isset($_POST['suivant2'])) {
  //On récupère les données dans $_POST
  $prenom = $_POST['prenom'];
  $nom = $_POST['nom'];
  $email = $_POST['email'];
  $telephone = $_POST['telephone'];
  $client = $_POST['client'];
  $precision = $_POST['precision'];

  $_SESSION['prenom'] = $prenom;
  $_SESSION['nom'] = $nom;
  $_SESSION['email'] = $email;
  $_SESSION['telephone'] = $telephone;
  $_SESSION['client'] = $client;
  $_SESSION['precison'] = $precision;

  //Envoie du formulaire
  // C'est l'adresse ou va être envoyé les données du formulaire
  $to = "fabio.cecere2509@gmail.com";
  //adresse de l'utilisateur
  $from = $_SESSION['email'];
  $subject = "Soumission du formulaire";
  $subject2 = "Copie de votre formulaire de soumission";
  $message = $_SESSION['prenom'] . " " . $_SESSION['nom'];
  $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom'];

  //adresse de l'utilisateur qui envoie le mail
  $headers = "From:" . $from;
  //adresse de l'entreprise
  $headers2 = "From:" . $to;

  // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
  if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {

    // Testons si le fichier n'est pas trop gros
    if ($_FILES['fichier']['size'] <= 1000000) {

      // Testons si l'extension est autorisée
      $infosfichier = pathinfo($_FILES['fichier']['name']);
      $extension_upload = $infosfichier['extension'];
      $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
      if (in_array($extension_upload, $extensions_autorisees)) {
        // On peut valider le fichier et le stocker définitivement
        if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
          echo "L'envoi a bien été effectué !";
           $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
        }else{
          echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
          exit;
        }
        
      }else{
        echo "Extension error ";
        exit;
      }
    }else{
      echo "Size Error !";      
      exit;
    }
  }

  if ($prenom == false || $nom == false || $email == false || $telephone == false) {
    $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>";
  } else {
    //envoie du formulaire
    /* if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){
      //header('Location: #');
      echo "Votre message a bien été envoyé";
      $_SESSION = array(); */
   
     //header('Location: recupDataTest.php'); // il faut désactiver la redirection pour voir si il n'y a pas d'erreur de code php dans ta page !
  }
  /* else{ //non envoyer
    //header('Location: #');
    echo "Votre message n'a pas pu être envoyé";
    $_SESSION = array();
    } */
}

//Si on appuie sur le bouton "Précèdent"
if (isset($_POST['retour2'])) {
  // On va sur le formulaire 2"
  header('Location: #demo2');
  die();
}
?>

<!DOCTYPE htlm>
<html lang="fr">
  <head>
    <meta charset="utf-8"/>
    <meta http-equiv="X_UA-Compatible" content="IE=edge">
    <title>Formulaire de devis</title>
    <style>

      #quantite{
        width:3.5em;
      }

      select option[value="bleu"]{
        background: blue;
      }
      select option[value="rouge"]{
        background: red;
      }
      select option[value="vert"]{
        background: green;
      }
      h4{
        color: red;
      }

      a {
        margin-top: 10px;
        margin: 44%;
        text-decoration: none;
        padding: 15px;
        background-color: white;
        border-radius: 5px;
        text-transform: uppercase;
        color: black;
        border: solid black;
      }
      a:hover{
        background-color: black;
        color: white;
      }

      .modal1 {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        top: 0; right: 0;
        bottom: 0; left: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(77, 77, 77, .7);
        transition: all .4s;
      }
      .modal1:target {
        visibility: visible;
        opacity: 1;
      }
      .modal_content1 {
        border-radius: 4px;
        position: relative;
        width: 500px;
        max-width: 90%;
        background: white;
        padding: 1.5em 2em;
      }
      .modal_close {
        position: absolute;
        top: 10px;
        right: 10px;
        color: grey;
        text-decoration: none;
        border: solid white;
        background: white;
      }
      .modal_close:hover{
        color: black;
        background: lightgrey;
      }
      .modal2 {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        top: 0; right: 0;
        bottom: 0; left: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(77, 77, 77, .7);
        transition: all .4s;
      }
      .modal2:target {
        visibility: visible;
        opacity: 1;
      }
      .modal_content2 {
        border-radius: 4px;
        position: relative;
        width: 500px;
        max-width: 90%;
        background: white;
        padding: 1.5em 2em;
      }

      .modal3 {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        top: 0; right: 0;
        bottom: 0; left: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(77, 77, 77, .7);
        transition: all .4s;
      }
      .modal3:target {
        visibility: visible;
        opacity: 1;
      }
      .modal_content3 {
        border-radius: 4px;
        position: relative;
        width: 500px;
        max-width: 90%;
        background: white;
        padding: 1.5em 2em;
      }

    </style>
  </head>
  <body>
    <a href="#demo1">Devis Express</a>

    <!--Formulaire 1 -->
    <div id="demo1" class="modal1">
      <div class="modal_content1">
        <h1>Votre demande de devis</h1>
        <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
        <h2>Vos besoins (Total de 10 pièces minimum)</h2>
        <form enctype="multipart/form-data" action="" method="post">

          <input type="submit" name="fermer1" class="modal_close" value="x"/>
          <p>
<?php
$modele = !empty($_SESSION['modele']) ? $_SESSION['modele'] : NULL;
?>
            <label for="modele">Modèle</label>
            <select name="modele" id="modele"/>
          <option value="T-shirts" <?php echo $modele == "T-shirts" ? "selected='selected' " : ""; ?>>T-shirts</option>
          <option value="Sweat-shirts" <?php echo $modele == "Sweat-shirts" ? "selected='selected' " : ""; ?>>Sweat-shirts</option>
          <option value="Pulls" <?php echo $modele == "Pulls" ? "selected='selected' " : ""; ?>>Pulls</option>
          </select>

          <label for="quantite">Quantité</label> 
          <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])) {
  echo $_SESSION['quantite'];
} ?>"/>
          <br></br> 
          </p>

          <p>
<?php
$taille = !empty($_SESSION['taille']) ? $_SESSION['taille'] : NULL;
?>
            <label for="taille">Taille</label>
            <select name="taille" id="taille"/>
          <option value="XS" <?php echo $taille == "XS" ? "selected='selected' " : ""; ?>>XS</option>
          <option value="S" <?php echo $taille == "S" ? "selected='selected' " : ""; ?>>S</option>
          <option value="M" <?php echo $taille == "M" ? "selected='selected' " : ""; ?>>M</option>
          <option value="L" <?php echo $taille == "L" ? "selected='selected' " : ""; ?>>L</option>
          <option value="XL" <?php echo $taille == "XL" ? "selected='selected' " : ""; ?>>XL</option>
          </select>

            <?php
            $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur'] : NULL;
            ?>
          <label for="couleur">Couleur</label>
          <select name="couleur" id="couleur">
            <option value="bleu" <?php echo $couleur == "bleu" ? "selected='selected' " : ""; ?>>bleu</option>
            <option value="rouge" <?php echo $couleur == "rouge" ? "selected='selected' " : ""; ?>>rouge</option>
            <option value="vert" <?php echo $couleur == "vert" ? "selected='selected' " : ""; ?>>vert</option>
          </select>
          </p>

          <p>
            <input type="submit" name="suivant" value="Suivant"/> 
          </p>
          <?php
          //Si le formulaire n'est pas rempli, on affiche le message d'erreur
          if (isset($afficheErreur1)) {
            echo $afficheErreur1;
            if (empty($_SESSION['quantite'])) {
              echo "<style>.quantite{background: #ffbdb0}</style>";
            } else {
              echo "<style>.quantite{background: white;}</style>";
            }
          }
          ?> 
        </form>
      </div>
    </div>

    <!--Formulaire 2 -->
    <div id="demo2" class="modal2">
      <div class="modal_content2">
        <h1>Votre demande de devis</h1>
        <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
        <h2>Infos supplémentaires pour impression</h2>
        <form action="" method="post">
          <input type="submit" name="fermer2" class="modal_close" value="x"/>
          <p>
<?php
$qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite'] : NULL;
?>
            <label for="qualite">Qualité</br></label>
            <select name="qualite" id="qualite">
              <option value="Promotionnel/1er prix" <?php echo $qualite == "Promotionnel/1er prix" ? "selected='selected' " : ""; ?>>Promotionnel/1er prix</option>
              <option value="Meilleur rapport qualité / prix" <?php echo $qualite == "Meilleur rapport qualité / prix" ? "selected='selected' " : ""; ?>>Meilleur rapport qualité / prix</option>
              <option value="Haut de gamme" <?php echo $qualite == "Haut de gamme" ? "selected='selected' " : ""; ?>>Haut de gamme</option>
            </select>
          </p>

          <p>
            <?php
            $zone = !empty($_SESSION['zone']) ? $_SESSION['zone'] : NULL;
            ?>
            <label for="zone">Zone de personnalisation</br></label>
            <select name="zone" id="zone">
              <option value="Coeur" <?php echo $zone == "Coeur" ? "selected='selected' " : ""; ?>>Coeur</option>
              <option value="Dos" <?php echo $zone == "Dos" ? "selected='selected' " : ""; ?>>Dos</option>
              <option value="Manche" <?php echo $zone == "Manche" ? "selected='selected' " : ""; ?>>Manche</option>
            </select>
          </p>

          <p>
            <label for="impression">Technique d'impression</br></label>
            <?php
            $impression = !empty($_SESSION['impression']) ? $_SESSION['impression'] : NULL;
            ?>
            <select name="impression" id="impression">
              <option value="DTG" <?php echo $impression == "DTG" ? "selected='selected' " : ""; ?>>DTG</option>
              <option value="Transfert quadri" <?php echo $impression == "Transfert quadri" ? "selected='selected' " : ""; ?>>Transfert quadri</option>
              <option value="Sérigraphie" <?php echo $impression == "Sérigraphie" ? "selected='selected' " : ""; ?>>Sérigraphie</option>
              <option value="Flex Flock" <?php echo $impression == "Flex Flock" ? "selected='selected' " : ""; ?>>Flex Flock</option>
              <option value="Broderie" <?php echo $impression == "Broderie" ? "selected='selected' " : ""; ?>>Broderie</option>
              <option value="Sublimation" <?php echo $impression == "Sublimation" ? "selected='selected' " : ""; ?>>Sublimation</option>
            </select>
          </p>

          <p>
            <label for="fichier">Importez vos fichiers ici</br></label>
            <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />-->
            <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai,
            .eps, .pdf, .svg">-->
          </p>

          <p>
            <input type="submit" name="retour1" value="Précèdent"/>
            <input type="submit" name="suivant1" value="Suivant"/>
          </p>
        </form>
      </div>
    </div>

    <!--Formulaire 3 -->
    <div id="demo3" class="modal3">
      <div class="modal_content3">
        <h1>Votre demande de devis</h1>
        <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
        <h2>Informations et précisions</h2>
        <form action="" method="post">
          <input type="submit" name="fermer3" class="modal_close" value="x"/>
          <p>
            <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])) {
              echo $_SESSION['prenom'];
            } ?>"/>
            <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])) {
              echo $_SESSION['nom'];
            } ?>"/>
            <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])) {
              echo $_SESSION['email'];
            } ?>"/>
          </p>

          <p>
            <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])) {
              echo $_SESSION['telephone'];
            } ?>"/>
<?php
$client = !empty($_SESSION['client']) ? $_SESSION['client'] : NULL;
?>
            <select name="client" id="client">
              <option value="Particulier"  <?php echo $client == "Particulier" ? "selected='selected' " : ""; ?>>Particulier</option>
              <option value="Entreprise" <?php echo $client == "Entreprise" ? "selected='selected' " : ""; ?>>Entreprise</option>
              <option value="Autre" <?php echo $client == "Autre" ? "selected='selected' " : ""; ?>>Autre</option>
            </select>

          </p>

          <p>
            <textarea id="precision" name="precision" rows="5" cols="40" 
                      placeholder="Précision">
<?php
if (isset($_SESSION['precision'])) {
  echo $_SESSION['precision'];
}
?>
            </textarea>
          </p>

          <p>
            <input type="submit" name="retour2" value="Précèdent"/>
            <input type="submit" name="suivant2" value="Envoyer"/>
          </p>
<?php
//Si le formulaire n'est pas rempli, on affiche le message d'erreur
//et on affiche la case en rouge
if (isset($afficheErreur2)) {
  echo $afficheErreur2;
  if (empty($_SESSION['prenom'])) {
    echo "<style>.prenom{background: #ffbdb0;}</style>";
  } else {
    echo "<style>.prenom{background: white;}</style>";
  }
  if (empty($_SESSION['nom'])) {
    echo "<style>.nom{background: #ffbdb0;}</style>";
  } else {
    echo "<style>.prenom{background: white;}</style>";
  }
  if (empty($_SESSION['email'])) {
    echo "<style>.email{background: #ffbdb0;}</style>";
  } else {
    echo "<style>.email{background: white;}</style>";
  }
  if (empty($_SESSION['telephone'])) {
    echo "<style>.telephone{background: #ffbdb0;}</style>";
  } else {
    echo "<style>.telephone{background: white;}</style>";
  }
}
?> 
        </form>
      </div>
    </div>
  </body>
</html>

0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
14 févr. 2022 à 11:56
Ahhhh intéressant, merci.

Cependant je pense qu'il doit y avoir un truc qui ne va pas dans mon code, car les test ne s'affiche pas...
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
14 févr. 2022 à 12:30
qu'est ce que tu appelles les tests ??
Où devraient -ils s'afficher selon toi ?
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
14 févr. 2022 à 13:30
Les tests des echo.
Eh bien ça devrait s'afficher sur le formulaire pour voir si tout est ok.
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
14 févr. 2022 à 13:47
ajoute alors des echo() pour comprendre où ton code dévie de ce que tu attends de lui.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
16 févr. 2022 à 15:05
Bonjour, bonjour. ^^

Donc j'ai changé la structure de mon code car le système avec les pop-ups c'était beaucoup trop compliqué.
Maintenant les écho s'affichent...

Voici la nouvelle structure.

<?php
	//On démarre une nouvelle session
   session_start();
 
   
   if(isset($_POST['suivant'])){
	   
	 //On récupère les données dans $_POST  
	 $modele=$_POST['modele'];
     $taille=$_POST['taille'];
     $couleur=$_POST['couleur'];
     $quantite=$_POST['quantite'];
	 $qualite=$_POST['qualite'];
     $zone=$_POST['zone'];
     $impression=$_POST['impression'];
	 //$fichier=$_POST['fichier'];
	 $prenom=$_POST['prenom'];
     $nom=$_POST['nom'];
     $email=$_POST['email'];
     $telephone=$_POST['telephone'];
     $client=$_POST['client'];
     $precision=$_POST['precision'];
	 
	 //On définit des variables de session
     $_SESSION['modele'] = $modele;
     $_SESSION['taille'] = $taille;
     $_SESSION['couleur'] = $couleur;
     $_SESSION['quantite'] = $quantite;
	 $_SESSION['qualite'] = $qualite;
     $_SESSION['zone'] = $zone;
     $_SESSION['impression'] = $impression;
	 //$_SESSION['fichier'] = $fichier;
	 $_SESSION['prenom'] = $prenom;
     $_SESSION['nom'] = $nom;
     $_SESSION['email'] = $email;
     $_SESSION['telephone'] = $telephone;
     $_SESSION['client'] = $client;
     $_SESSION['precison'] = $precision;
	 
	 
	 //Envoi du fichier
	 // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
		  if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {

			// Testons si le fichier n'est pas trop gros
			if ($_FILES['fichier']['size'] <= 1000000) {

			  // Testons si l'extension est autorisée
			  $infosfichier = pathinfo($_FILES['fichier']['name']);
			  $extension_upload = $infosfichier['extension'];
			  $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
			  if (in_array($extension_upload, $extensions_autorisees)) {
				// On peut valider le fichier et le stocker définitivement
				if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
				  echo "L'envoi a bien été effectué !";
				   $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
				}else{
				  echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
				  exit;
				}
				
			  }else{
				echo "Extension error ";
				exit;
			  }
			}else{
			  echo "Size Error !";      
			  exit;
			}
		  }
	 
	 //Envoie du formulaire
	// C'est l'adresse ou va être envoyé les données du formulaire
	 $to = "fabio.cecere2509@gmail.com"; 
	 //adresse de l'utilisateur
	 $from = $_SESSION['email'];
	 //Objet mail (pour nous)
	 $subject = "Demande de devis - Smartex";
	 //objet mail (pour l'utilisateur)
	 $subject2 = "Confirmation de votre demande de devis - Smartex";
	 //Message du mail (pour nous)
	 $message = "<h1>Devis Smartex</h1>" . "</br>" . "Demande de devis au nom de " . $_SESSION['prenom'] . " " . $_SESSION['nom'] . " (" . $_SESSION['client'] . ") " . "</br>" .
	 " Email : " . $_SESSION['email'] . "</br>" . "Numéro de téléphone : " .  $_SESSION['telephone'] . "</br>" . "Description du projet : "
	 . $_SESSION['precison'] . "</br>" . "</br>" . "<h2>Description de la commande</h2>" . "</br>" . "Type de vêtement à personnaliser : " . $_SESSION['modele'] . " " . "Quantité : " . $_SESSION['quantite']
	 . "Taille " . $_SESSION['taille'] . "</br>" . " Couleur : " . $_SESSION['couleur'] . " Qualité : " . $_SESSION['qualite'] 
	 . " Zone d'impression : " . $_SESSION['zone'] . " Type d'impression " . $_SESSION['impression'];
	 //Message du mail (pour l'utilisateur)
	 $message2 = "<h1>Description de votre devis smartex</h1>". "chère Monsieur/Madame " . $_SESSION['prenom'] . " " . $_SESSION['nom']
	 . " Votre demande de devis a bien été envoyé et sera traité par notre équipe. Nous vous contacterons au plus vite, merci de votre confiance ^^"
	 . "</br>" . "</br>" . "<h2>Description de la commande</h2>" . "</br>" . "Type de vêtement à personnaliser : " . $_SESSION['modele'] . " " . "Quantité : " . $_SESSION['quantite']
	 . "Taille " . $_SESSION['taille'] . "</br>" . " Couleur : " . $_SESSION['couleur'] . " Qualité : " . $_SESSION['qualite'] 
	 . " Zone d'impression : " . $_SESSION['zone'] . " Type d'impression " . $_SESSION['impression'];
	 
	//adresse de l'utilisateur qui envoie le mail
	$headers = "From:" . $from;
	//Notre adresse
    $headers2 = "From:" . $to;
	 
	 if($quantite == false || $prenom == false || $nom == false || $email == false || $telephone == false){
		$afficheErreur = "<h4>Veuillez compléter les champs obligatoires *</h4>";
    }
	else{
		//envoie du formulaire
		if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){
			//header('Location: #');
			echo "<h6>Votre message a bien été envoyé !</h6>";
			$_SESSION = array();
			 header('Location: recupDataTest.php');
		}
		else{ //non envoyer
			//header('Location: #');
			echo "<h6>Votre message n'a pas pu être envoyé !<h6>";
			$_SESSION = array();
		}
	}
   }
?>

<!DOCTYPE htlm>
<html lang="fr">
	<head>
		 <meta charset="utf-8"/>
		 <meta http-equiv="X_UA-Compatible" content="IE=edge">
		 <style>
			h4{
				color: red;
			}
			h6{
				color: green;
			}
				</style>
	</head>
	<body>
		<!--Formulaire 1 -->
		<div id="demo1" class="modal1">
			<div class="modal_content1">
			<?php
				   //Si le formulaire n'est pas rempli, on affiche le message d'erreur
				   //et on affiche la case en rouge
					if (isset($afficheErreur)){
					 echo $afficheErreur;
						 if(empty($_SESSION['prenom'])){
							echo "<style>.prenom{background: #ffbdb0;}</style>";
						 }
						 else{
							 echo "<style>.prenom{background: white;}</style>";
						 }
							 if(empty($_SESSION['nom'])){
								echo "<style>.nom{background: #ffbdb0;}</style>";
							 }
							 else{
								 echo "<style>.prenom{background: white;}</style>";
							 }
								 if(empty($_SESSION['email'])){
									echo "<style>.email{background: #ffbdb0;}</style>";
								 }
								 else{
									 echo "<style>.email{background: white;}</style>";
								 }
									if(empty($_SESSION['telephone'])){
										echo "<style>.telephone{background: #ffbdb0;}</style>";
									}
									else{
										echo "<style>.telephone{background: white;}</style>";
									}
				   }
				?>
				   
			   <h1>Votre demande de devis gratuit</h1>
			   <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
			   <form enctype="multipart/form-data" action="" method="post">
					
					<p>
						 <?php
						  $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL;
						 ?>
						<label for="modele">Modèle</label>
						<select name="modele" id="modele"/>
						   <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>><p>T-shirts</p></option>
						   <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option>
						   <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option>
						</select>
				 
						<label for="quantite">Quantité *</label> 
						<input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/>
						<br></br> 
					</p>

					<p>
						 <?php
						  $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL;
						 ?>
						<label for="taille">Taille</label>
						<select name="taille" id="taille"/>
						   <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option>
						   <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option>
						   <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option>
						   <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option>
						   <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option>
						</select>
			   
						 <?php
						  $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL;
						 ?>
						<label for="couleur">Couleur</label>
						<select name="couleur" id="couleur">
						   <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option>
						   <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option>
						   <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option>
						</select>
					</p>
					<p>
					 <?php
					  $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL;
					 ?>
					<label for="qualite">Qualité</br></label>
					<select name="qualite" id="qualite">
					   <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option>
					   <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option>
					   <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option>
					</select>
				</p>
  
				<p>
					  <?php
					   $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL;
					  ?>
					<label for="zone">Zone de personnalisation</br></label>
					<select name="zone" id="zone">
					   <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option>
					   <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option>
					   <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option>
					</select>
				</p>
  
				<p>
					<label for="impression">Technique d'impression</br></label>
					  <?php
					   $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL;
					  ?>
					<select name="impression" id="impression">
					   <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option>
					   <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option>
					   <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option>
					   <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option>
					   <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option>
					   <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option>
					</select>
				</p>
     
				<p>
					  <label for="fichier">Importez vos fichiers ici</br></label>
					  <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />-->
					  <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai,
					  .eps, .pdf, .svg">-->
				</p>
				</br>
				</br>
				<h2>Informations personnelles</h2>
				<p>
					<input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/>
					<input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/>
					<input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/>
				</p>
	  
				<p>
					<input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/>
					<?php
					 $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL;
					?>
					<select name="client" id="client">
						 <option value="Particulier"  <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option>
						 <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option>
						 <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option>
					</select>

				</p>
	  
				<p>
					<textarea id="precision" name="precision" rows="5" cols="40" 
					placeholder="Précision">
					<?php
					 if (isset($_SESSION['precision'])){echo $_SESSION['precision'];}
					?>
					</textarea>
				</p>
	  
				<p>
					<input type="submit" name="suivant" value="Envoyer"/>
				</p>
				</form>
			</div>
		</div>
	</body>
</html>


J'ai ajouté un fichier et j'ai reçu le message : "erreur lors de l'upload du fichier vers uploads/", donc l'erreur est due au fait qu'il n'a pas su stocker le fichier dans "upload", C'est ça ?

Est-ce qu'on peut m'expliquer ce qu'il passe en ligne 54 avec l'upload, cela m'aiderait à comprendre pourquoi mon fichier n'a pas été uploader.
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
16 févr. 2022 à 15:19
Bonjour,

Il n'a pas réussi à déplacer le fichier depuis le dossier temporaire vers le dossier désiré.
par contre le message est juste : "erreur lors de l'upload du fichier vers uploads/" ... il n'y a pas le nom d'un fichier après le uploads/ ??
Il serait utile, dans le ELSE qui affiche ce message d'erreur, d'ajouter un var_dump($_FILES);

Il faudrait ensuite vérifier :
1 - que le fichier est bien uploadé dans le fichier temp avant de le déplacer
Voir la fonction https://www.php.net/manual/fr/function.is-uploaded-file.php

2 - Voir que le répertoire de destination existe
https://www.php.net/manual/fr/function.is-dir.php

3 - Que tu disposes bien des droits en écriture sur ce dossier
https://www.geeksforgeeks.org/php-is_writable-function/



0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
16 févr. 2022 à 15:27
Merci beaucoup pour les infos, je vais regarder ça.

Si si, il y a bien le nom du fichier après...
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
16 févr. 2022 à 15:48
Bon, ça ne donne pas grand-chose, mais j'avoue ne pas comprendre grand-chose.

J'ai écrit ce qui me semblait "correct", mais ne sachant pas quoi faire, j'ai fait un peu du grands n'importe quoi. ^^

//Envoi du fichier
	 // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
		  if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {

			// Testons si le fichier n'est pas trop gros
			if ($_FILES['fichier']['size'] <= 1000000) {

			  // Testons si l'extension est autorisée
			  $infosfichier = pathinfo($_FILES['fichier']['name']);
			  $extension_upload = $infosfichier['extension'];
			  $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
			  if (in_array($extension_upload, $extensions_autorisees)) {
				// On peut valider le fichier et le stocker définitivement
				if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
				  echo "L'envoi a bien été effectué !";
				   $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
				}else{
				  echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
				  var_dump(is_dir($_FILES)); 
				  if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
					   echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n";
					   echo "Affichage du contenu\n";
					   readfile($_FILES['fichier']['tmp_name']);
					} else {
					   echo "Attaque possible par téléchargement de fichier : ";
					   echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'.";
					}
				  if(is_writable($_FILES['fichier']['name'])) 
					{
					   echo ("$_FILES['fichier']['name'] file is writable!");
					} 
					else 
					{
					   echo ("$_FILES['fichier']['name'] file is not writable!");
					}
				  exit;
				}
				
			  }else{
				echo "Extension error ";
				exit;
			  }
			}else{
			  echo "Size Error !";      
			  exit;
			}
		  }
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
16 févr. 2022 à 16:24
Le IS_DIR ... et le IS_WRITABLE .. c'est sur le dossier dans lequel tu veux upload le fichier qu'il faut le faire ... pas sur le fichier lui même..


Et toutes ces vérifications.. il faut les faire AVANT d'essayer de faire le move ..


Une fois ton code écrit .. il serait bien de nous dire ce qui s'affiche ... (comme message d'erreur... )
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024
Modifié le 17 févr. 2022 à 09:57
Bonjour,

Ok ok, j'ai placé le IS_DIR et le IS_WRITABLE avant le move.

Cependant il y a une chose que je ne comprends pas trop, il faut enregistrer sur un dossier ou on veut l'upload, n'importe quel dossier ? Je ne comprends pas trop.

//Envoi du fichier
	 // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
		  if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {

			// Testons si le fichier n'est pas trop gros
			if ($_FILES['fichier']['size'] <= 1000000) {

			  // Testons si l'extension est autorisée
			  $infosfichier = pathinfo($_FILES['fichier']['name']);
			  $extension_upload = $infosfichier['extension'];
			  $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
			  if (in_array($extension_upload, $extensions_autorisees)) {
				// On peut valider le fichier et le stocker définitivement
					if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
					   echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n";
					   echo "Affichage du contenu\n";
					   readfile($_FILES['fichier']['tmp_name']);
					} else {
					   echo "Attaque possible par téléchargement de fichier : ";
					   echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'.";
					}
						if(is_writable($_FILES['fichier']['name'])) 
						{
						   echo ("$_FILES['fichier']['name'] file is writable!");
						} 
						else 
						{
						   echo ("$_FILES['fichier']['name'] file is not writable!";
						}
				if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
				  echo "L'envoi a bien été effectué !";
				   $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
				}else{
				  echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
				  var_dump($_FILES); 
				  exit;
				}
				
			  }else{
				echo "Extension error ";
				exit;
			  }
			}else{
			  echo "Size Error !";      
			  exit;
			}
		  }
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
17 févr. 2022 à 11:01
Le fichier .. tu vas le sauvegarder dans un emplacement ( un dossier ) de ton serveur web...
Il faut donc regarder, avant d'essayer d'y mettre le fichier, que ce dossier existe ET est accessible en écriture...
C'est donc sur ce dossier qu'il faut regarder si c'est bien un dossier (et si il existe) via l'instruction is_dir et si tu y a les droits en écriture ...
Je le redis ... sur le DOSSIER ... et non pas sur le $_FILES !!

Et puis, tu vas faire le MOVE ( vers ce dossier ... destination finale de ton fichier donc.. ) SI .. il a bien été chargé ( ce que tu vérifies avec la fonction is_uploaded_file ) ... ce n'est donc pas dans le ELSE de celui ci qu'il faut mettre le code .. mais bien dans la partie IF ..

en gros..
if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
   echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n";
   
  if(is_dir('uploads/'){
    if(is_writable('uploads/'))	{
      if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
         echo "L'envoi vers le serveur a bien été effectué !";
        $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
      }else{
        echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
        var_dump($_FILES); 
        exit;
      }
    } else {
       echo ("Erreur: Le dossier n'a pas les droits en écriture";
    }
  }else{
    echo "Erreur : dossier de destination manquant ou erreur dans le chemin !"; 
  }             
} else {
   echo "Attaque possible par téléchargement de fichier : ";
   echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'.";
}
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
Modifié le 17 févr. 2022 à 11:40
Ok ok, donc en gros j'ai suivis cette logique, mais j'ai tout de même une erreur de compilation.
Parse error: syntax error, unexpected 'if' (T_IF) in C:\xamppp\htdocs\smartex\wordpress\wordpress.php on line 131 enfin dans ce cas ci la ligne 131 corespond à la ligne 18

//Envoi du fichier
  // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
    if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) {

   // Testons si le fichier n'est pas trop gros
   if ($_FILES['fichier']['size'] <= 1000000) {

     // Testons si l'extension est autorisée
     $infosfichier = pathinfo($_FILES['fichier']['name']);
     $extension_upload = $infosfichier['extension'];
     $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
     if (in_array($extension_upload, $extensions_autorisees)) {
    // On peut valider le fichier et le stocker définitivement
    if (is_uploaded_file($_FILES['fichier']['tmp_name'])) {
       echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n";
       
      if(is_dir('uploads/'){
     if(is_writable('uploads/')) {
       if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){
       echo "L'envoi vers le serveur a bien été effectué !";
      $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name'];
       }else{
      echo "Erreur lors de l'upload du fichier vers " .  'uploads/' . $_FILES['fichier']['name']  ;
      var_dump($_FILES); 
      exit;
       }
     } else {
        echo ("Erreur: Le dossier n'a pas les droits en écriture";
     }
      }else{
     echo "Erreur : dossier de destination manquant ou erreur dans le chemin !"; 
      }             
    } else {
       echo "Attaque possible par téléchargement de fichier : ";
       echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'.";
    }
    
     }else{
    echo "Extension error ";
    exit;
     }
   }else{
     echo "Size Error !";      
     exit;
   }
    }
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
Modifié le 17 févr. 2022 à 11:57
as-tu bien examiné le contenu de la ligne 18?
l'erreur se trouve parfois dans une des lignes précédentes.
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024
Modifié le 17 févr. 2022 à 12:07
Ah oui j'ai trouvé l'erreur ^^.

Cependant une fois mon formulaire envoyé, aucun message ne s'affiche >.<
Je ne sais donc pas s'il a été envoyé...
0
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
17 févr. 2022 à 12:12
Ah non, j'avais juste oublié de mettre un fichier, autant pour moi.

Voilà, j'ai reçu comme message : " File (nom_du_fichier).pdf téléchargé avec succès. Erreur : dossier de destination manquant ou erreur dans le chemin ! "
0
yg_be Messages postés 23328 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
17 févr. 2022 à 12:28
Vois les explications en #22.
0
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703 > fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
17 févr. 2022 à 13:23
Tu crées un dossier ou tu veux sur ton serveur
Et tu remplaces dans le code toutes les lignes qui contiennent, actuellement, uploads/
1
fabi00 Messages postés 82 Date d'inscription vendredi 4 février 2022 Statut Membre Dernière intervention 18 mars 2022
17 févr. 2022 à 14:19
Super ça fonctionne !!!

Je vous dit un grand grand merci pour tout. Vous avez beaucoup de patience. ^^
Et le plus important, j'ai compris le concept.

Bonne journée.
0