Move_uploaded_file

bob6173 Messages postés 4 Statut Membre -  
bob6173 Messages postés 4 Statut Membre -
bonjour mon problème la fonction ' move_uploaded_file' fonctionne très bien et je peut voir les photos dans un dossier de mon choix je suis meme arriver a les renommer mais quant je passe par une bases-de-donnees pour les voir elle son inaccessible la seul façon pour que cela fonctionne je doit les copier coller dans le meme dossier et la sa marche sinon on dirais quelle son fantôme voila j'ai un formulaire qui les copie dans le dossier les renomme et place leur adresse dans une bdd et un autre formulaire peut les afficher et tout est ok sauf que je suis obliger de les copier coller dans se mémé dossier pour les voir dans le formulaire bien sur après je supprime une des copie si sa vous parle je suis bloquer la

4 réponses

  1. bob6173 Messages postés 4 Statut Membre
     
    resalut et voila le scripte en plusieurs morceaux


    bon voila donc je pense que le formulaire n'est pas utile mais s'y il le faut je le met donc mon ficher de photo s'appelle " photos " et il est place dans le meme fichier que le scripte
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Tu ne sais pas lire ?
      Je t'ai demandé de poster ton code en utilisant les BALISES DE CODE.

      Les images.... on ne peut rien en faire.... pas de copier/coller.....

      Donc merci de : poster ton code correctement en utilisant la coloration syntaxique (les balises de code).
      Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
      0
  2. bob6173 Messages postés 4 Statut Membre
     
    <?php

    //ouverture de la bdd et recuperation des donneés formulaire
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    $nom = ($_POST['nom']);
    $prenom =($_POST['prenom']);
    $adresse =($_POST['adresse']);
    $telephone =($_POST['telephone']);
    $description=($_POST['description']);
    $monfichier =($_FILES['monfichier']);

    //recuperation id de la bdd le plus grand +1
    $reponse = $bdd->query('SELECT id FROM repertoir ORDER BY id DESC');
    $donnees = $reponse->fetch();
    $chiffre = strval($donnees[0]+1);

    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur

    if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error']== 0)
    {
    // Testons si le fichier n'est pas trop gros
    if ($_FILES['monfichier']['size'] <= 1000000)
    {
    // Testons si l'extension est autorisée
    $infosfichier = pathinfo($_FILES['monfichier']['name']);
    $extension_upload = $infosfichier['extension'];
    $extensions_autorisees = array('jpg','jpeg','gif','png');

    // ici on traite la decoupe du nom du fichier
    $split =explode(".", ($_FILES['monfichier']['name']));
    $ext = strtolower($split[1]);
    $nom_ph ="ph".''.$chiffre.'.'.$ext;
    $lieu = 'photos/photo/';
    $photo ='../photos/photo/ph'.''.$chiffre.'.'.$ext;

    if (in_array($extension_upload,$extensions_autorisees))

    {
    // On peut valider le fichier et le stocker définitivement
    move_uploaded_file($_FILES['monfichier']['tmp_name'],"$lieu $nom_ph");

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

    }
    else
    {
    echo"l'extention n'est pas valide";

    }

    }
    else
    {
    echo"fichier trop gros ";
    }

    }
    else
    {
    $photo="vide";
    echo"le fichier est sauvegarde sans photo";
    }

    // ici on prepare la requette et on l'envoie

    $req = $bdd->prepare("INSERT INTO repertoir(nom, prenom,adresse,telephone,description,photo)
    VALUES(:nom,:prenom,:adresse,:telephone,:description,:photo)");
    $req->execute(array('nom'=>$nom,
    'prenom'=>$prenom,
    'adresse'=>$adresse,
    'telephone'=>$telephone,
    'description'=>$description,
    'photo'=>$photo ));

    ?>

    voila excuse moi je suis nouveau j’espère que sa vas comme sa s'il faut faire autre chose ?
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Utiliser les balises de code.........
      As tu, au moins, ouvert le lien que je t'ai donné ?
      0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bon,
    Voici déjà quelques corrections apportées à ton code.
    Essaye de t'en inspirer pour tes prochains codes
    <?php 
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd
    try{
      $bdd =new PDO('mysql:host=localhost;dbname=test; charset=utf8', 'root', '');
      // Activation des erreurs PDO
      $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
      $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
      die('Erreur : ' . $e->getMessage());
    }
    
    //récupération PROPRE des variables
    // avant de les utiliser 
    $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; 
    $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL
    $adresse = !empty($_POST['adresse']) ? $_POST['adresse'] : NULL
    $telephone = !empty($_POST['telephone']) ? $_POST['telephone'] : NULL
    $description = !empty($_POST['description']) ? $_POST['description'] : NULL
    $monfichier = !empty($_FILES['monfichier']) ? $_FILES['monfichier'] : NULL
    
    
    //recuperation id de la bdd le plus grand +1 
    $sql = 'SELECT max(id) FROM repertoir ';
    //Execution de la requete
    try{
      $requete = $bdd -> prepare($sql) ;
      $requete->execute() ;
      $donnees = $reponse->fetch(); 
      $chiffre = strval($donnees[0]+1);
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
    }
     
    
    
    // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur 
    
    if ($monfichier && $monfichier['error']== 0) { 
      $fileName = $monfichier['name'];
      // Testons si le fichier n'est pas trop gros 
      if ($monfichier['size'] <= 1000000) { 
        // Testons si l'extension est autorisée 
        $infosfichier = pathinfo($fileName); 
        $extension_upload = $infosfichier['extension']; 
        $extensions_autorisees = array('jpg','jpeg','gif','png'); 
    
        // ici on traite la decoupe du nom du fichier 
        $split = explode(".", ($fileName)); 
        $ext = strtolower($split[1]); 
        $nom_ph ="ph".''.$chiffre.'.'.$ext; 
        $lieu = 'photos/photo/'; 
        $photo =$lieu . $nom_ph;
    
        if (in_array($extension_upload,$extensions_autorisees)) { 
          // On peut valider le fichier et le stocker définitivement 
          if(move_uploaded_file($_FILES['monfichier']['tmp_name'],"$lieu $nom_ph")){
            echo "L'envoi a bien été effectué !"; 
          }else{
            echo "Erreur lors de l'upload du fichier"; 
            exit();
          }
        } else { 
          echo"l'extention n'est pas valide"; 
        } 
      } else { 
        echo"fichier trop gros "; 
      } 
    } else { 
      $photo="vide"; 
      echo"le fichier est sauvegarde sans photo"; 
    } 
    
    // ici on prepare la requette et on l'envoie 
    $sql = "INSERT INTO repertoir(nom, prenom,adresse,telephone,description,photo) 
    VALUES(:nom,:prenom,:adresse,:telephone,:description,:photo)";
    
    $datas = array(':nom'=>$nom, 
                  ':prenom'=>$prenom, 
                  ':adresse'=>$adresse, 
                  ':telephone'=>$telephone, 
                  ':description'=>$description, 
                  ':photo'=>$photo ); 
    
    //Execution de la requete
    try{
      $requete = $bdd->prepare($sql) ;
      $requete->execute($datas);
      
      //id du nouvel enregistrement en bdd :
      $new_id = $bdd->lastInsertId();
      echo "Enregistrement en bdd : ".$new_id;
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
      print_r($datas);
    }
    ?>
    


    Je t'invite à lire et à appliquer le contenu de ces deux liens :

    https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    Si malgré cela tes soucis persistent, il faudra également nous montrer le code qui te sert à afficher tes images....

    Pense également à vidé le cache de ton navigateur (si le souci n'est qu'un problème d'affichage d'image... )

    .

    0
    1. bob6173 Messages postés 4 Statut Membre
       
      et bien grand merci pour tous ce code je vois que tu est tres douée et que tu connais bien le php ; moi je débute et seul c'est pas simple et j’avoue que je n'ai pas mis beaucoup de contrôle de code alors merci encore et je vais voir si je peut y arriver a+jordane
      0