PHP

Basename ne retourne pas le nom du fichier

Non Résolu

Hello,


J'arrive à ce stade : https://www.sitedudev.com/cours/creer-son-site-de-rencontres/fc0d52ad0950436ebd102fd146cd4fbf


Le dossier avec l'ID de la session se crée correctement mais impossible d'y ajouter l'image 😩

Auriez-vous une super solution s'il vous plait ? Cela signifie-t-il bien que j'ai les droits en écriture sur le fichier upload et que cela vient d'ailleurs ?

J'ai essayé avec un echo sur $_FILES['avatar']['name'] mais aucun retour.


<?php
    session_start();
    include('bd/connexionDB.php');
 
    if (!isset($_SESSION['id'])){
        header('Location: index.php');
        exit;
    }
 
    // On récupère les informations du particulier connecté
    $afficher_profil = $DB->query("SELECT *
        FROM part_profil
        WHERE id = ?",
        array($_SESSION['id']));
    $afficher_profil = $afficher_profil->fetch();
 
    if(!empty($_POST)){
        extract($_POST);
        $valid = true;
 
if(isset($_POST['envoyerphoto'])){
         $dossier = "upload/" . $_SESSION['id'] . "/";   
          if(!is_dir($dossier)){
            mkdir($dossier);
          }
     $fichier = basename($_FILES['avatar']['name']);
     echo $fichier;
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)){

      if(file_exists($dossier . $SESSION['avatar']) && isset($SESSION['avatar'])){
        unlink($dossier . $SESSION['avatar']);
      }
      $req=$DB->prepare("UPDATE part_profil SET avatar = ? WHERE id = ?");
      $req->execute(array($fichier, $_SESSION['id']));
      $_SESSION['avatar'] = $fichier;

          header('Location: profil.php');
                exit;
     }
     else
     {
          header('Location: profil.php');
                exit;
     }
 }
}

?>

<!DOCTYPE html>
<html lang="fr">
    <head>
        <base href="/"/>
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
        <title>Accueil</title>
        <!--https://getbootstrap.com/docs/5.1/getting-started/introduction/ -->
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link rel="stylesheet" href="css/style.css">

    <body>
      <?php
        require_once('menu.php');
      ?>

         <div class="container">
     <div class="row">   
         <!--La balise div permet que ce soit un peu plus propre - On coupe sur des colonnes-->
          <div class="col-30 col-sm-0 col-md-2 col-lg-3"></div>
          <!--https://getbootstrap.com/docs/5.1/layout/grid/-->
          <div class="col-30 col-sm-12 col-md-8 col-lg-6">
          <form method="post">
        <h1>Modification de profil<a href="profil.php"><button type="submit" class="btn btn-primary" name="valider">Valider</button></a></h1>


        <div>
             <form method="post" enctype="multipart/form-data">
                  <!-- On limite le fichier à 100Ko -->
                  <!-- <input type="hidden" name="MAX_FILE_SIZE"> -->
                  <div>
                  Fichier : <input type="file" name="avatar">
                  </div><br>
                  <div><input type="submit" name="envoyerphoto" class="btn btn-primary" value="Envoyer votre photo de profil"></div>
             </form>
            </div>


            <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
            <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
            <link rel="stylesheet" href="https://code.jquery.com/ui/1.7.3/themes/base/jquery-ui.css">

           
             <!-- Script pour adresses de la base nationale https://adrien.poupa.fr/autocompletion-des-adresses-avec-la-base-adresse-nationale -->


    <!-- Faire le même script que ci-dessus mais axé professionnels puis en faire un second pour les associations -->
    <!-- Script lié à la barre de recherche -->
    </body>
</html>


Merci pour votre aide 😀

328 vues
20 novembre 2021 à 12:17 (Édité)
Cette pub permet au site de vivre ...

Commentaire

Cette pub permet au site de vivre ...