Bonjour, j'ai un problème avec mon compte, je souhaite faire un formulaire php qui recupère toutes les données ainsi que les pièces jointes et qui les envoies par suite à la BDD.

Deux questions : Tout d'abord comment faire pour qu'il me récupère les fichiers et me les stocker dans le dossier sachant qu'il ne me le fait pas.

Ensuite comment faire pour recuperer toutes les données et les mettre dans la table de la base de donnée.

Merci de votre aide.

<?php

      if(isset($_POST['envoi'])) {

        if(empty($_POST['prospect']) || empty($_POST['siret']) || empty($_POST['devis']) || empty($_POST['loyer']) || empty($_POST['contrat']) || empty($_POST['description']) || empty($_POST['filearray']))
        {
          echo "Veuillez remplir touts les champs précédé d'un astérisque";
        }
        else {

        //  $sql = 'Insert into' Inserer dans BDD les infos

          if (isset($_FILES['filearray']) AND $_FILES['filearray']['error'] == 0)
          {

            if ($_FILES['filearray']['size'] <= 1000000)
            {
              $infosfichier = pathinfo($_FILES['filearray']['name']);
              $extension_upload = $infosfichier['extension'];
              $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf', 'doc', 'docx');

            if (in_array($extension_upload, $extensions_autorisees))
            {
              move_uploaded_file($_FILES['filearray']['tmp_name'], 'fichiers/' . basename($_FILES['filearray']['name']));
              echo "";
            }
            }
          }

          if (isset($_FILES['filearray2']) AND $_FILES['filearray2']['error'] == 0)
          {

            if ($_FILES['filearray2']['size'] <= 1000000)
            {
              $infosfichiers = pathinfo($_FILES['filearray2']['name']);
              $extension_uploads = $infosfichiers['extension'];
              $extensions_autoriseess = array('jpg', 'jpeg', 'gif', 'png', 'pdf', 'doc', 'docx');
              if (in_array($extension_uploads, $extensions_autoriseess))
            {
              move_uploaded_file($_FILES['filearray2']['tmp_name'], 'fichiers/' . basename($_FILES['filearray2']['name']));
              echo "";
            }
            }
          }
        }

      }
        else {
        }

?>
  <form action="" id="formulaire" enctype="multipart/form-data" method="POST">
  <div class="form-group">
    <label for="exampleInputEmail1">Nom du prospect *</label>
    <input type="text" class="form-control" name="prospect" data-validation-length="1-32" data-validation="alphanumeric" data-validation-error-msg="Veuillez renseigner le nom du prospect">
  </div>
  <div class="form-group">
    <label for="exampleInputText1">Numéro du siret *</label>
    <input type="text" class="form-control" name="siret" data-validation-length="1-20" data-validation="alphanumeric" data-validation-error-msg="Veuillez renseigner le numéro de siret">
  </div>
  <div class="form-group">
    <label for="exampleInputText1">Montant du devis *</label>
    <input type="number" class="form-control" name="devis" data-validation-length="1-20" data-validation="alphanumeric" data-validation-error-msg="Veuillez renseigner le montant du devis">
  </div>
  <div class="form-group">
    <label for="exampleInputText1">Montant du loyer *</label>
    <input type="number" class="form-control" name="loyer" data-validation-length="1-20" data-validation="alphanumeric" data-validation-error-msg="Veuillez renseigner le montant du loyer">
  </div>
  <div class="form-group">
    <label for="exampleInputText1">Durée du contrat *</label>
    <input type="number" class="form-control" name="contrat" data-validation-length="1-20" data-validation="alphanumeric" data-validation-error-msg="Veuillez renseigner le numéro de contrat">
  </div>
  <div class="form-group">
    <label for="exampleInputText1">Description *</label>
    <textarea class="form-control" name="description"  data-validation-error-msg="Veuillez renseigner la description de la demande" data-validation="required"></textarea>
  </div>
  <div class="form-group">
    <label for="exampleInputFile">Devis *</label>
    <input id='filearray' name="filearray" type="file" class="form-control-file" data-validation="required" data-validation-error-msg="Veuillez renseigner la pièce jointe">
  </div>
  <div class="form-group">
    <label for="exampleInputFile">Autre</label>
    <input id='filearray2' name="filearray2" type="file" class="form-control-file">
  </div>

  <button type="submit" class="btn btn-primary" value="validate" name="submit" >Envoyer</button>

</form>

2 réponses


as-tu bien remplis l'attribut action du formulaire ?

Bonjour.

comment faire pour qu'il me récupère les fichiers et me les stocker dans le dossier sachant qu'il ne me le fait pas.

C'est tout à fait normal que tes vérifications ne fonctionnent pas, étant donné que dans ta condition tu vérifies $_POST['envoi'] alors que tu n'as aucun élément dans ton formulaire qui ait comme valeur envoi pour les attributs name .
Du coup tu ne passes même pas la première condition.

comment faire pour recuperer toutes les données et les mettre dans la table de la base de donnée.

Si tu sais comment faire une requête SQL pour les insertions, tu devrais savoir comment faire.
Par contre, avant de vouloir sauvegarder les données en BDD, tu devrais t'assurer que le/les fichier(s) soient bien stockés sur ton serveur et étant donné que tu stockes tous les fichiers uploadés dans le même dossier, tu devrais renommer les fichiers, car dans le cas actuel, tu risques d'écraser des fichiers qui auraient le même nom.