Je ne comprend pas pourquoi ca ne veut pas s'upload

Fermé
jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
- Modifié le 22 déc. 2020 à 20:53
jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
- 30 déc. 2020 à 18:01
Bonsoir j'ai un probleme en php qui me donne un mal de tête. je n'arrive pas a comprendre pourquoi mon fichier ne s'upload pas sur le serveur.

Mon code consiste a mettre sur mon serveur des documents administratif , pour les cartes id cela fonctionne très bien mais quand je fais exactement pareille pour le document cerfaM0 ca ne fonctionne pas ...

Mon code pour la carte id (fonctionne !!!)


// UPLOAD PIECE IDENTITE

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

        $name_files = $_FILES['pieceid']['name'];                        
        $date_now = '-'.date("H-i-s");
        $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
        $target_file = $_FILES['pieceid']['tmp_name'];                                
        $real_name = substr($name_files, 0, -4);
        $file_name = '../../../src/crea_societe/pieceid/'. $real_name . $date_now . $type_files; 
        $resultat = move_uploaded_file($target_file, $file_name);

        if($resultat){

            $update = $bdd->prepare('UPDATE crea_societe SET doc_pieceid = ? WHERE id = ?');
            $update->execute(array(

            ($real_name . $date_now . $type_files),
            ($_GET['num'])
            
    ));

            header('Location: creation-view-physique.php?num='.$_GET['num']);
            exit();
        }       
    }



html pour carte id


<form action="" method="POST" enctype="multipart/form-data">
       <input type="hidden" value="true" name="piece_id">
       <div class="image-upload">
       <label for="file-input">
      <div class="livicon-evo" data-options=" name: <?php if($crea['doc_pieceid'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
       </label>

    <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="pieceid" type="file" onchange="this.form.submit();">
    </div>
</form>





Maintenant j'ai exactement le même code mais ça ne fonctionne pas (il sont sur la même page ...)


// UPLOAD cerfaM0

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

        $name_files = $_FILES['cerfaM0']['name'];                         
        $date_now = '-'.date("H-i-s");
        $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
        $target_file = $_FILES['cerfaM0']['tmp_name'];                                     
        $real_name = substr($name_files, 0, -4);
        $file_name = '../../../src/crea_societe/cerfaM0/'. $real_name . $date_now . $type_files; 
        $resultat = move_uploaded_file($target_file, $file_name);

        if($resultat){

            $update = $bdd->prepare('UPDATE crea_societe SET doc_cerfaM0 = ? WHERE id = ?');
            $update->execute(array(

            ($real_name . $date_now . $type_files),
            ($_GET['num'])
            
    ));

            header('Location: creation-view-physique.php?num='.$_GET['num']);
            exit();
        }       
    }



html


<form action="" method="POST" enctype="multipart/form-data">
  <input type="hidden" value="true" name="cerfaM0_id">
  <div class="image-upload">
    <label for="file-input">
      <div class="livicon-evo" data-options=" name: <?php if($crea['doc_cerfaM0'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
  </label>

  <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="cerfaM0" type="file" onchange="this.form.submit();">
    </div>
</form>

2 réponses

jordane45
Messages postés
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351
22 déc. 2020 à 21:01
Bonjour,

Commence par mettre en commentaire la redirection le temps de tes tests.
Ensuite, fais un var_dump de ta variable $_POST et de ta variable $_FILES

Assure toi également que le dossier de destination existe en utilisant la fonction is_dir()

Ajoute également un controle sur le is_uploaded pour t'assurer, avant le move que le fichier est bien uploadé
$num = !empty($_GET['num']) ? $_GET['num'] : NULL;

if (is_uploaded_file($_FILES['cerfaM0']['tmp_name'])) {
  echo "File ". $_FILES['cerfaM0']['name'] ." téléchargé avec succès.\n";
  $dir = '../../../src/crea_societe/cerfaM0/';
  
  if(!is_dir($dir)){
    echo " Le répertoire de destination n'existe pas !";
    exit;
  }
  
  $name_files = $_FILES['cerfaM0']['name'];                         
  $date_now = '-'.date("H-i-s");
  $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
  $target_file = $_FILES['cerfaM0']['tmp_name'];                                     
  $real_name = substr($name_files, 0, -4);
  $file_name = $dir. $real_name . $date_now . $type_files; 
  if($resultat = move_uploaded_file($target_file, $file_name)){
    $update = $bdd->prepare('UPDATE crea_societe SET doc_cerfaM0 = ? WHERE id = ?');
    $update->execute(array( ($real_name . $date_now . $type_files), $num  ));
    //header('Location: creation-view-physique.php?num='.$_GET['num']);
    exit();
  }else{
     echo "Erreur lors du déplacement de fichier !"; 
     exit;
  }
  
} else {
   echo "Erreur lors de l'upload du fichier : ";
   echo "Nom du fichier : '". $_FILES['cerfaM0']['tmp_name'] . "'.";
}

0
jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

Modifié le 22 déc. 2020 à 23:39
Ca marche quand il y a qu'un seul form sur la page, mais la j'ai un probleme.

Il y a plusieur form sur la page pour sache document mais a chaque fois ca execute le premiere formulaire (celui de pieceid), je pense que c'est a cause du js , qui permet de faire un auto submit quand il detecte un fichier ...


<li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_pieceid'] == ""){echo "warning";}else{echo "success";} ?>">Piece d'identitée :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_pieceid ?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_pieceid'] ?></small>

                                                                        <form action="php/insert_pieceid.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_pieceid'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="pieceid" type="file" onchange="this.form.submit();">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_pieceid'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/pieceid/<?= $crea['doc_pieceid'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>

                                                                    <li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_cerfaM0'] == ""){echo "warning";}else{echo "success";} ?>">Cerfa M0 :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_cerfaM0?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_cerfaM0'] ?></small>

                                                                        <form action="php/insert_cerfaM0.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_cerfaM0'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="cerfaM0" type="file" onchange="this.form.submit();">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_cerfaM0'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/cerfaM0/<?= $crea['doc_cerfaM0'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>

<!-- ect ect -->




le code js =
 onchange="this.form.submit();"
au milieu du code html

En gros meme si je met un document dans la parite cerfaM0 , ca me ramene sur ---> insert_pieceid.php

Mais sinon le code d'upload marche , c'etait un pb de js , si je me trompe pas ?
0
jordane45
Messages postés
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351 > jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

22 déc. 2020 à 23:43
Mets des ID à tes form et utilises la syntaxe
document.getElementById("id_du_form_à_submit").submit();

*
Mais bon, là ce n'est plus un problème lié à l'upload de fichier ni au code php...
Pour le coup ça devient un souci de Javascript éventuellement...
0
jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
> jordane45
Messages postés
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022

23 déc. 2020 à 20:52
Bonne idée mais ça ne fonctionne pas , ma me ramene toujours vers le premiere formulaire (insert_pieceid.php)

Mon code (j'ai ajouter les id et j'ai mit une function onchange parce que quand j'arriver sur la page ca envoe directement le formulaire, je sais pas si j'ai bien fait)

<li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_pieceid'] == ""){echo "warning";}else{echo "success";} ?>">Piece d'identitée :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_pieceid ?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_pieceid'] ?></small>

                                                                        <form id="pieceid" action="php/insert_pieceid.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_pieceid'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input onchange="pieceidd()" accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="pieceid" type="file">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_pieceid'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/pieceid/<?= $crea['doc_pieceid'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>
                                                                    <script>   
                                                                    
                                                                    function pieceidd(){
                                                                        document.getElementById("pieceid").submit();
                                                                    }
                                                                    
                                                                    </script>
                                                                    <li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_cerfaM0'] == ""){echo "warning";}else{echo "success";} ?>">Cerfa M0 :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_cerfaM0?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_cerfaM0'] ?></small>

                                                                        <form id="cerfaM0" action="php/insert_cerfaM0.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_cerfaM0'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="cerfaM0" type="file" onchange="cerfaM00()">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_cerfaM0'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/cerfaM0/<?= $crea['doc_cerfaM0'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>
                                                                    <script>  

                                                                    function cerfaM00(){
                                                                        document.getElementById("cerfaM0").submit();
                                                                    }
                                                                    
                                                                    </script>
0
jordane45
Messages postés
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351 > jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

23 déc. 2020 à 20:59
Tu peux faire un var_dump de la variable $_POST au début de ton script et nous montrer ce que ça te retourne quand tu charges un fichier dans ton premier form ... puis dans ton second ?
0
jeann_9499
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
> jordane45
Messages postés
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022

23 déc. 2020 à 23:08
Le probleme n'est pas sur le script php , en faite quand je valide le form cerfaM0 ca me ramene sur insrt_pieceid.php alors que dans action de cerfaM0 j'ai mit insert_cerfam0;php
0