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

Signaler
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
-
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
-
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

Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553
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'] . "'.";
}

Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553 >
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

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...
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

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>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553 >
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

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 ?
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

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
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553 >
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

Tu as bien vidé ton cache ?
Tu pourrais nous donner le code généré de ta page ? ( CTRL+u lorsque tu affiches ta page (celle contenant les formulaires) dans ton navigateur )
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020

J'ai bien vider mon cash, rien ne change.

voila le code source de la page

Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

A oups , je pensais que tu voulais une image


<li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text success">Piece d'identitée :</small>
                                                                        <img src="../../../app-assets/images/icon/doc.png" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text">crea_societe-13-07-55.sql</small>

                                                                        <form id="pieceid" action="php/insert_pieceid.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="1" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: 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="" href="../../../src/crea_societe/pieceid/crea_societe-13-07-55.sql"><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 success">Cerfa M0 :</small>
                                                                        <img src="../../../app-assets/images/icon/doc.png" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text">e1c4ab6ad85850c4-22-14-00.png</small>

                                                                        <form id="cerfaM0" action="php/insert_cerfaM0.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="1" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: 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="" href="../../../src/crea_societe/cerfaM0/e1c4ab6ad85850c4-22-14-00.png"><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>



Voila je suis désolé
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

Je pensais que c'est pour observer le code du ctrl-u
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

Bonjour jespere que vous avez passé de bonne fete de noel je n'est pas retouché a mon code depuis et j'ai eu des echo de la part d'amis qui etait mieux de passe par du ajax ? est-ce vrai ?
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
3 553 > jeann_9499
Déjà .. est-ce que tu sais ce qu'est l'ajax ??
Sachant que ton intéret principal étant de pouvoir manipuler/accéder à des données côté serveur... sans avoir à recharger la page où on se trouve.
Est-ce que pour l'upload de tes fichiers.. (thème de la discussion actuelle) tu en as besoin ?
Messages postés
10
Date d'inscription
vendredi 18 décembre 2020
Statut
Membre
Dernière intervention
30 décembre 2020
>
Messages postés
32934
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021

Oui j'ai conscience plus ou moin de l'utilité d'ajax, d'apres mon amis c'est normal que le petit script qui lance le form exectute que le premier formulaire et il ma donc conseiller de le faire en ajax , pour dans un premier temps avec un changement sans refresh la page.

Exemple image :


Quand dans la bdd il y a deja un doc ca propose de modifier le doc,
ou sinon dans ajouter un !