Salut les gars je travail avec des amis sur un projet et nous rencontrons un petit problème sur une des options de l'espace admin du projet et en effet grâce a un formulaire nous aimerons par exemple que l'on puisse Upload une image, un titre de musique, le nom de l'artiste et aussi le poids du fichiers ";

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

Entourez votre code pour bien le mettre en f<?php
session_start();
include '../functions/connect.func.php';
$ajouter_pays=$bdd->query("SELECT * FROM ajouter_pays ORDER BY id DESC");
if(isset($_SESSION['login']))
{
?>
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>

        <meta charset="utf-8">
        <meta name="language" content="fr">
        <link rel="stylesheet" type="text/css" href="css/style.css">
          <link rel="icon" type="image/png" href="../img/twitter.png"/>
          <link rel='stylesheet' href='font/css/font-awesome.css' type='text/css' media='all'/>
          <link rel="stylesheet" type="text/css" href="css/ministrap.css">
          <script src="js/jquery-1.7.2.min.js"></script>
    </head>
    <body class="with-top-bar">
        <div class="top-bar">
            <div class="container-full">
                    <div class="row">
                                <ul class="menu">
                                    <li  class="active"><a href="choisir_pays.php">Choisir un pays</a></li>
                                    <li><a href="">Mettre le vidèo ou l'images d'intro</a></li>
                                    <li><a href="">Ajouter des pub</a></li>
                                    <li><a href="ajouter_pays.php">Ajouter un pays</a></li>
                                    <li><a href="deconnexion.php">Se deconnecter</a></li>
                                </ul>
                    </div>
            </div>
        </div>
        <h1 style="text-align:center; margin-top:-10px;">Le pays choisi est: </h1>

            <?php
            if(isset($_POST['submit'],$_POST['titre_chanson'],$_POST['nom_artiste'],$_POST['nom_page'],$_POST['poid']))
            {
                $nom_page=htmlspecialchars($_POST['nom_page']);
                $titre_chanson=htmlspecialchars($_POST['titre_chanson']);
                $nom_artiste=htmlspecialchars($_POST['nom_artiste']);
                $poid=(int) $_POST['poid'];

                if(!empty($titre_chanson) && !empty($nom_artiste) && !empty($nom_page) && !empty($poid))
                {
                    $file_name= $_FILES['image_post']['name'];
                    $file_extension= strrchr($file_name, ".");
                    $file_tmp_name= $_FILES['image_post']['tmp_name'];
                    $file_dest= '../img/'.$file_name;
                    $extensions_autorisees= array('.jpg', '.jpeg','.png','.PNG');
                    if(in_array($file_extension, $extensions_autorisees))
                    {
                        if(move_uploaded_file($file_tmp_name, $file_dest))
                        {
                            // deuxieme partie pour insere une musique dans le site web

                            $file_name2= $_FILES['musique_post']['name'];
                            $file_extension2= strrchr($file_name2, ".");
                            $file_tmp_name2= $_FILES['musique_post']['tmp_name'];
                            $emplacement_du_fichier= '../download/'.$file_name2;
                            $extensions_autorisees2= array('.mp3', '.MP3');
                            if(in_array($file_extension2, $extensions_autorisees2))
                            {
                                if(move_uploaded_file($file_tmp_name2, $emplacement_du_fichier))
                                {
                                    $ins=$bdd->prepare("INSERT INTO cameroun(titre_chanson,nom_artiste,nom_page,date_pubication,nom_image, image_url,filename,chemin_download,poid)VALUES(?,?,?,NOW(),?,?,?,?,?)");
                                    $ins->execute(array($titre_chanson,$nom_artiste,$nom_page,$file_name,$file_dest,$file_name2,$emplacement_du_fichier,$poid));

                                    $message="La musique a ete bien poster";
                                }
                                else
                                {
                                    $message="Une erreur est survenue lors de l'envoi du fichier audio";
                                }

                            }
                            else
                            {
                                $message='Votre fichier doit être de format .mp3 ou .MP3';
                            }

                        }
                        else
                        {
                            $message="Une erreur est survenue lors de l'envoi du fichier image";
                        }

                    }
                    else
                    {
                        $message="Votre fichier doit être de format .jpg ou .jpeg";
                    }
                }

                else
                {
                    $message="Veuillez remplir tout les champs";
                }
            }
        ?>
        <div class="container">
            <div class="row">
                <div class="formulaire">
                    <form method="post" action="" enctype="multipart/form-data">
                        <input type="text" name="nom_page" placeholder="Le nom de la page" id="nom_page"><br>
                        <input type="file" name="image_post" id="image_upload" value="ajouter l'image"><br>
                        <input type="file" name="musique_post" id="image_upload" value="ajouter l'audio"><br>
                        <input type="text" name="titre_chanson" placeholder="titre de la chanson" id="nom_page"><br>
                        <input type="text" name="nom_artiste" placeholder="le nom de l'artiste" id="nom_page"><br>
                        <input type="text" name="poid" placeholder="poid du morceau" id="nom_page"><br>
                        <button type='submit' class='uploader_fichier' name="submit"><i class="fa fa-cloud-upload fa-2x" aria-hidden="true"></i>&nbsp;&nbsp;Uploader le fichier.</button>
                    </form>
                    <br>
                    <?php
                        if(isset($message))
                        {
                            echo '<p class="message">'.$message.'</p>';
                        }
                    ?>
                </div>
            </div>
        </div>

        <script type="text/javascript">
            $(document).ready(function(){
                $(".message").fadeOut(5000);
            });
        </script>
    </body>
    </html>
<?php
}
else
{
    header("location:index.php");
}
?>orme

Ce que je veux

uploader plusieurs fichiers un fichier audio un une image et du texte

Ce que j'obtiens

dans notre code on a une erreur un niveau de la ligne 74 $message="Une erreur est survenue lors de l'envoi du fichier audio

5 réponses


Salut,

est-ce que tu as essayé de mettre un chemin "absolu" au lieu de "relatif" pour la variable $emplacement_du_fichier ?

Non pas encore je vais éssayer avec cela pour voir un peut si ceka marche

Pour moi il y a un problème dans l'insert de ta requête !

<?php

        $date_actu = date('Y-m-d H:i:s'); //La date 2016-10-24 18:32:46

        $ins=$bdd->prepare("INSERT INTO cameroun(titre_chanson, nom_artiste, nom_page, date_publication, nom_image,  image_url, filename, chemin_download, poid)VALUES(:titre_chanson, :nom_artiste, :nom_page, :date_publication, :nom_image, :image_url, :filename, :chemin_download, :poid)");
         $ins->execute(array('titre_chanson' => $titre_chanson,
                            'nom_artiste' => $nom_artiste,
                             'nom_page' => $nom_page,
                             'date_publication' => $date_actu,
                             'nom_image' => $nom_image,
                             'image_url' => $img_url,
                             'filename' => $nom_chanson,
                             'chemin_download' => $chemin_download,
                             'poid' => $poid));

 ?>

@JeremieMeunier non, tu n'est pas obligé de nommer les paramètres
le pb doit venir de l'upload
il faut vérifier les erreurs comme ceci

if ($_FILES['musique_post']['error']) {     
    switch ($_FILES['musique_post']['error']){     
    case 1: // UPLOAD_ERR_INI_SIZE     
        $error = "444: Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";     
        break;     
    case 2: // UPLOAD_ERR_FORM_SIZE     
        $error = "555: Le fichier dépasse la limite autorisée dans le formulaire HTML !"; 
        break;     
    case 3: // UPLOAD_ERR_PARTIAL     
        $error = "L'envoi du fichier a été interrompu durant le transfert !";     
        break;     
    case 4: // UPLOAD_ERR_NO_FILE     
        $error = "666: Le fichier que vous avez envoyé a une taille nulle !";
        break;
    }
}

Voici un truc semblable au tien (avec des bonus), j'espere que sa t'aidera


require_once('necessaires/db.php');
//si l'utilisateur clique sur uploader
if(isset($_POST['submit']))
{
    $fileSize = $_FILES["file"]["size"];

    if ($fileSize < 20074449)
    {
        if(isset($_GET['am'])){
            $detail = $bdd->prepare("SELECT * FROM albums_mixtapes WHERE artiste = ? AND titre = ?");
            $detail->execute(array($_GET['artiste'],$_GET['am']));

            $verif = $detail->rowCount();

            if($verif === 1){
                $info = $detail->fetch();

                $nom_artiste = $info->artiste;
                $titre_single = htmlspecialchars(trim(addslashes($_POST['titre'])));
                $image_single = $info->cover;
                $image_artiste = $info->cover;
                $en_feat = htmlspecialchars(trim($_POST['feat']));
                $titre_single = htmlspecialchars(trim($_POST['titre']));
                $genre_single = htmlspecialchars(trim($_POST['genre']));
                $duree_single = htmlspecialchars(trim($_POST['duree']));
                $production_beat = htmlspecialchars(trim($_POST['prod']));
                $facebook = $info->fb;
                $mixtape = $info->titre;
                $pays = $info->pays;
                $mode_promo = $info->mode;
            }else{
                echo 'Cette mixtape ou album n\'existe pas';
                exit();
            }
        }else{
            //reconnaissances et sécurisisation des variables renvoyées
            $nom_artiste = htmlspecialchars(trim($_POST['artiste']));
            $titre_single = htmlspecialchars(trim($_POST['titre']));
            $en_feat = htmlspecialchars(trim($_POST['feat']));
            $genre_single = htmlspecialchars(trim($_POST['genre']));
            $duree_single = htmlspecialchars(trim($_POST['duree']));
            $mode_promo = htmlspecialchars(trim($_POST['mode']));
            $production_beat = htmlspecialchars(trim($_POST['prod']));
            $pays = htmlspecialchars(trim($_POST['pays']));
            $facebook = htmlspecialchars(trim($_POST['fb']));
            $offres = htmlspecialchars(trim($_POST['offres']));
            $mixtape = htmlspecialchars(trim($_POST['mixtape']));
            //images uploader
            //img single

            // on attribut un nom aléatoire
            $strf = "";
            $str = "abcdefghijklmnpqrstuvwxy0123456789_";
            srand((double)microtime()*1000000);
            for($i=0; $i<40; $i++)
            {
                $strf .= $str[rand()%strlen($str)];
            }
            $image_single = str_replace(' ','-',str_replace('é','-',strtolower($nom_artiste.' '.$strf.' '.$_FILES['cover']['name'])));
            $image_single_tmp = $_FILES['cover']['tmp_name'];

            if (!empty($image_single))
            {
                move_uploaded_file($image_single_tmp,'images/cover/'.$image_single);
            }else{
                $image_single = 'cover.jpg';
            }

            $image_artiste = $_FILES['img_artiste']['name'];
            $image_artiste_tmp = $_FILES['img_artiste']['tmp_name'];

            if (!empty($image_artiste))
            {
                move_uploaded_file($image_artiste_tmp,'images/artistes/'.$image_artiste);
            }else{
                $image_single = 'cover.jpg';
            }
        }

        // extencions permises
        $allowedExts = array("mp3","MP3");
        $temp = explode(".", $_FILES["file"]["name"]);
        $extension = end($temp);

        if ($extension == 'mp3' || $extension == 'MP3')
        {
            if ((($_FILES["file"]["type"] == "audio/mp3") || ($_FILES["file"]["type"] == "audio/MP3")) && in_array($extension, $allowedExts))
            {
                if ($_FILES["file"]["error"] > 0) {
                    echo "0";
                } else {
                    $fileName = $_FILES["file"]["name"];
                    $fileType = $_FILES["file"]["type"];
                    $urlid = rand(10000,90000);
                    $urlid2 = rand(10000000000000000,900000000000000000);

                    //dossier ou le single sera envoyé
                    $dossier = "singles/";
                    move_uploaded_file($_FILES["file"]["tmp_name"], $dossier. $urlid2. ".mp3" );
                    $url = "$urlid2.mp3";

                    //requete sql
                    //requête d'insertion des info sur le fichier dans le mp3
                    $query = $bdd->prepare("INSERT INTO singles(id,artiste,titre,taille,genre,mode,cover,album_mixtape,lien,date_ajout,pays,prod,source,duree,feat,ecoutes,vote_pour,vote_contre,telechargements,vues)
                                                  VALUES (?,?,?,?,?,?,?,?,?,NOW(),?,?,?,?,?,0,0,0,0,0) ");
                    $query->execute(array($urlid,$nom_artiste,$titre_single,$fileSize,$genre_single,$mode_promo,$image_single,$mixtape,$urlid2,$pays,$production_beat,$fileName,$duree_single,$en_feat));

                    //pour ajouter des donnée a la table artistes
                    $artiste = $bdd->prepare("SELECT id FROM artistes WHERE nom = ?");
                    $artiste->execute(array($nom_artiste));
                    $conteA = $artiste->rowCount();

                    if($conteA === 0){
                        $new_artiste = $bdd->prepare("INSERT INTO artistes(nom,facebook,img,pays) VALUES (?,?,?,?)");
                        $new_artiste->execute(array($nom_artiste,$facebook,$image_artiste,$pays));
                    }

                    /*if($offres == 'platine' || $offres == 'or' || $offres == 'argent')
                    {
                        $req1 = $bdd->query("INSERT INTO offres_pris(id,offres,date_debut,id_source) VALUES ('','$offres',NOW(),'$urlid')");
                    }

                    //augmenter le nmbre de singles concernat la mixtape en question
                    if(!empty($mixtape))
                    {
                        $sqlQ = $bdd->prepare("UPDATE albums_mixtapes SET nbr_mp3 = nbr_mp3+1 WHERE team = ? AND mixtape = ? ");
                        $sqlQ->execute(array($nom_artiste, $mixtape));
                    }

                    //on vérifie sil'artiste n'est pas déjà inscrit
                    $requete = $bdd->query("SELECT id FROM teams_artistes WHERE nom = '$nom_artiste'");

                    $conte = $requete->rowCount();

                    if($conte === 0)
                    {
                        if(empty($image_artiste))
                        {
                            $image_artiste = 'cover.jpg';
                        }

                        $q = $bdd->query("INSERT INTO teams_artistes VALUES ('','$nom_artiste',0,0,0,0,0,'$envoyeur',0,0,0,1,0,'$pays',NOW(),'$image_artiste','$label_team') ");
                    }else{
                        $q = $bdd->query("UPDATE teams_artistes SET singles = singles+1 WHERE nom = '$nom_artiste'");
                    }

                    //requete pour mettre le nombre de single de la mixtape a jour au cas ou sa l'est
                    if(!empty($mixtape))
                    {
                        $sqlREQ = $bdd->prepare("UPDATE albums_mixtapes SET nbr_mp3 = nbr_mp3 WHERE team = ? AND mixtape = ?");
                        $sqlREQ->execute(array($nom_artiste, $mixtape));
                    }*/

                    echo  "Le fichier ".$fileName ." a été bien uploadé <br> <a href='zik.php?id=$urlid' target='_blank'>Voir le single</a>";
                }
            }

        }else{
            echo "Veiller sélectionner un fichier audio mp3";
        }

    }else{
        echo "Votre fichier mp3 ne doit pas dépasser 20 MB";
    }

}