Url non reconnue

Résolu
boni91 -  
 Boni91 -
Bonjour a tous, je voudrai permettre a l'utilisateur de pouvoir télécharger le son qu'il ou elle écoute, pour cela j'ai mis les url dans un tableau PHP, quand je clic sur le bouton telecharger ça m'envoie le code source de la page et non pas le son, je test sous wampp,

	$secondcatalogue_1 = array(
'son_40'=>array(
'audio2' => '../mp3_1/page70.mp3',
'img' => '../img/livre_2.jpg',
'img2' => '../btn/haut-parleur1.png',
'img1' => '',
'text' => '<b>15 - page 70</b> - Message é / et / er / ez',
'color'=>'#99e3df',
'url' => 'localhost/project_val_bis/page_principal/lecteur-audio.php?id=son_43/mp3/../mp3/page70.'

),
voici un bout du tableau et le code html

	echo'<a href="'.$url.'" download><img style="width="76"; height="76" src="../img/bouton-telecharger.png"></a>';


je ne comprend pas pourquoi ça ne fonctionne pas.
merci d'avance

12 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    localhost .. seul ton serveur connait....
    Un internaute n'y a pas accès.

    Pour que la personne puisse y accéder.. il faut que ton url soit du style :

    url_de_ton_site/emplacement_du_fichier

    où url_de_ton_site est du genre : http://tonsite.fr/

    Donc, lorsque tu construits ton lien de téléchargement...
    tu dois pouvoir simplement (si ton dossier se trouve à la racine de ton site) utiliser, pour un lien DIRECT :
    $_SERVER['SERVER_NAME'] . "emplacement_de_ton_fichier_mp3"
    

    il faut bien indiqué l'emplacement du fichier sur le serveur... et non un lien vers une page (à moins que la page soit celle qui génère l'upload)
    Dans ce cas, sur la page qui génère l'upload tu auras un truc du genre:
    <?php
    $fileName = "mon_son.mp3";
    $file = "chemin_vers_fichier/".$fileName;
    header("Content-disposition: attachment; filename=".$fileName);
    header("Content-type: octet/stream");
    readfile($file);?> 
    


    0
  2. boni91 Messages postés 26 Statut Membre
     
    merci pour la reponse, donc si je comprend bien, mon url serais de se type,

    http://www.francaispouradultes/mp3/page125.mp3
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Oui
      0
  3. boni91 Messages postés 26 Statut Membre
     
    merci jordane45,
    http://www.francaispouradultes/mp3/page125.mp3


    par contre est ce que l'on peut tester sous wampp, car je l'ais noté comme ça et toujours se telechargement du code source.
    0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, il est préférable d'utiliser un url relatif.
    par exemple, si tu utilises "mp3/page125.mp3" comme url, cela va automatiquement s'adapter en fonction du site:
    - si la page visitée est www.francaispouradultes/, l'url va devenir www.francaispouradultes/mp3/page125.mp3
    - si ta page visitée est localhost/project_val_bis/page_principal/, l'url va devenir localhost/project_val_bis/page_principal/mp3/page125.mp3

    en d'autres mots, ton url relatif va fonctionner même quand tu déplaces ton site.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. boni91 Messages postés 26 Statut Membre
     
    alors je viens d'essayer avec cet url,

    localhost/project_val_bis/../mp3/page29.mp3

    et
    localhost/project_val_bis/../mp3/page29


    je recois toujours le code source de la page et sait comme si je ne recevais rien.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      quand tu écris "essayer avec cet url", merci d'écrire où tu as essayé:
      - dans la barre d'adresse de ton navigateur?
      - ailleurs?
      0
  7. boni91 Messages postés 26 Statut Membre
     
    l'attribut href de la balise a dans le code source est vide, donc j'ai fait un print_r et var_dump, string 'localhost/project_val_bis/page_principal/lecteur-audio.php?id=son_43/mp3/../mp3/page57.' (length=87)
    je recois bien quelque chose.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      montre le code source de ta page html, et ton code php.
      0
  8. boni91 Messages postés 26 Statut Membre
     
    le code source:

    <!doctype html>
    <html lang="fr">
    <head>
    <title>françaispouradulte
    </title>
    <!------------------------------balises-meta--------------------------------->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Bandes sons Au boulot ! livre 1 et livre 2 – le français pour adultes – Valérie <b>VERMURIE</b>">
    <!-----------------------------styles-css------------------------------------>
    <link rel="stylesheet" href="../css/style.css" media="all">
    <link rel="stylesheet" href="../css/style_exo_1.css" media="all">
    <link rel="stylesheet" href="../css/contact.css" media="all">
    <link rel="stylesheet" href="../css/normalize.css" media="all">
    <link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../css/animate.css" />
    <link rel="icon" type="image/png" href="../favicon.png" />
    <link rel="apple-touch-icon" sizes="120x120" href="../apple-touch-icon-120x120-precomposed.png" /> <link rel="apple-touch-icon" sizes="152x152" href="../apple-touch-icon-152x152-precomposed.png" />
    <!-----------------------------styles-font----------------------------------->
    <link href='https://fonts.googleapis.com/css?family=Kreon:400,700,300' rel='stylesheet' type='text/css'>
    <!-----------------------------script_js----------------------------------->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
    </script>
    <script src="jquery.js"></script>
    <script src="audioplayer.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script src="audiojs/audio.min.js"></script>
    <!--[if IE9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <div id="wrapper">
    <header class="header_color">
    <div id="header_logo">
    <img src="../img/logo.png" alt="logo_francais_pour_adultes" />
    </div>
    <nav class="nav_right">
    <li>
    <a href="../index.php" title="accueil">ACCUEIL
    </a>
    </li>
    <li>
    <a href="../page_principal/exercices.php" title="exercices">EXERCICES
    </a>
    </li>
    <li>
    <a href="../page_principal/livres.php" title="livres">LIVRES
    </a>
    </li>
    <li>
    <a href="../page_principal/audio.php" style="color:#54d1cd;" title="audio">AUDIO
    </a>
    </li>
    <li>
    <a href="../page_principal/contact.php" title="contact">CONTACT
    </a>
    </div>

    </header>
    <div id="content">
    <br />
    <div class="container">
    <section class="post text_desc">

    <pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'localhost/project_val_bis/page_principal/lecteur-audio.php?id=son_43/mp3/../mp3/page64.'</font> <i>(length=87)</i>
    </pre><figure style="display:inline-block;border:none;padding:1px;"><img width="390" height="580" style="margin:55px 0 0 260px;" src="../img/livre_1.jpg" alt=""></figure><figure style="display:inline-block;border:none;padding:1px;"></figure><figure style="display:inline-block;border:none;padding:1px;"></figure><div><figure style="display:inline-block;border:none;padding:1px;"></figure></div><div><audio style="float:left;margin-left:325px;margin-top:20px;margin-bottom:50px;" controls preload="auto"><source src="" type="audio/mp3"/><source src="" type="audio/mp3"/><source src="../mp3/page64.mp3" type="audio/mp3"/><source src="" type="audio/mp3"/></audio></div><div style="display:inline-block;margin-left:850px; margin-top:40px; margin-bottom:10px;"><a href="" download><img style="width="76"; height="76" src="../img/bouton-telecharger.png"></a></div><div style="float:left;width:150px; height:80px; margin:-65px 0 0 710px;"><a style="padding:1em 1.5em .7em 1.5em;border:1px solid #000;text-decoration:none;background:#fff;font-family:notoserif;font-weight:bold;color:#000;" href="http://s642262600.onlinehome.fr//index.php?img=..%2Fimg%2Flivre_1.jpg&prix=18.90&livre_1=ACHETER" >ACHETER</a></div> </section>
    </div>

    </div>
    <!--------------content------>
    <footer class="footer_color">
    <div class="info_left foot_info_left">
    <p>Réalisation du site internet:
    <a style="font-size:1.3em;" href="../page_principal/contact_nills.php">Nilsweb
    </a>
    </p>
    <p>&copy - Le français pour adultes - 2016 - Tous droits réservés.
    </p>
    </div>
    <div class="info_left foot_info_right">
    <li class="info-border">
    <a href="contact.php">contact
    </a>
    </li>
    <li class="info-border">
    <a href="../page_principal/mention.php">Mention légales / Condition générales de ventes
    </a>
    </li>
    </div>
    </footer>
    </div>
    <!--------------wrapper------>
    <script src="js/viewportchecker.js">
    </script>
    <script type="text/javascript">
    jQuery(document).ready(function() {
    jQuery('.post').addClass("hidden").viewportChecker({
    classToAdd: 'visible animated fadeInDown', // Class to add to the elements when they are visible
    offset: 100
    }
    );
    }
    );
    </script>
    <script type="text/javascript">
    $(function() {
    $('a[href=#header]').click(function(){
    $('html').animate({
    scrollTop:0}
    , 'slow');
    return false;
    }
    );
    }
    );
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("audio");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("son");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("son_1");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("son_2");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("son_3");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    <script type="text/javascript">
    var vid = document.getElementById("son_4");
    function playVid(id) {
    var vid = document.getElementById(id);
    vid.play(id);
    }
    function pauseVid() {
    vid.pause();
    }
    </script>
    </body>
    </html>



    et le php

    			<?php

    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);

    require_once "../inc/inc_catalogue.php";

    require_once "../inc/inc_secondcatalogue.php";

    $id = !empty($_GET['id']) ? $_GET['id'] : NULL;

    if($id){

    $audio3 = !empty($catalogue[$id]['audio3']) ? $catalogue[$id]['audio3'] : NULL;
    $img = !empty($catalogue[$id]['img']) ? $catalogue[$id]['img'] : NULL;
    $img2 = !empty($catalogue[$id]['img2']) ? $catalogue[$id]['img2'] : NULL;
    $img1 = !empty($catalogue[$id]['img1']) ? $catalogue[$id]['img1'] : NULL;
    $text = !empty($catalogue[$id]['text']) ? $catalogue[$id]['text'] : NULL;
    $color = !empty($catalogue[$id]['color']) ? $catalogue[$id]['color'] : NULL;
    $url = !empty($catalogue[$id]['url']) ? $catalogue[$id]['url'] : NULL;

    var_dump($url);

    echo'<figure style="display:inline-block;border:none;padding:1px;">';
    if (strlen($img1) > 0) {
    echo '<img width="390" height="580" style="margin:55px 0 0 260px;" src="' . $img1 .'" alt="">';
    }if (strlen($img) > 0) {
    echo '<img width="960" height="800" style="margin:55px 0 0 260px;" src="' . $img .'" alt="">';
    }
    echo'</figure>';

    $audio4 = !empty($catalogue_1[$id]['audio4']) ? $catalogue_1[$id]['audio4'] : NULL;
    $img = !empty($catalogue_1[$id]['img']) ? $catalogue_1[$id]['img'] : NULL;
    $img2 = !empty($catalogue_1[$id]['img2']) ? $catalogue_1[$id]['img2'] : NULL;
    $img1 = !empty($catalogue_1[$id]['img1']) ? $catalogue_1[$id]['img1'] : NULL;
    $text = !empty($catalogue_[$id]['text']) ? $catalogue_[$id]['text'] : NULL;
    $color = !empty($catalogue_1[$id]['color']) ? $catalogue_1[$id]['color'] : NULL;
    $url = !empty($catalogue_1[$id]['url']) ? $catalogue_1[$id]['url'] : NULL;

    echo'<figure style="display:inline-block;border:none;padding:1px;">';
    if (strlen($img1) > 0) {
    echo '<img width="390" height="580" style="margin:55px 0 0 260px;" src="' . $img1 .'" alt="">';
    }if (strlen($img) > 0) {
    echo '<img width="960" height="800" style="margin:55px 0 0 260px;" src="' . $img .'" alt="">';
    }
    echo'</figure>';

    $audio1 = !empty($secondcatalogue[$id]['audio1']) ? $secondcatalogue[$id]['audio1'] : NULL;
    $img = !empty($secondcatalogue[$id]['img']) ? $secondcatalogue[$id]['img'] : NULL;
    $img2 = !empty($secondcatalogue[$id]['img2']) ? $secondcatalogue[$id]['img2'] : NULL;
    $img1 = !empty($secondcatalogue[$id]['img1']) ? $secondcatalogue[$id]['img1'] : NULL;
    $text = !empty($secondcatalogue[$id]['text']) ? $secondcatalogue[$id]['text'] : NULL;
    $color = !empty($secondcatalogue[$id]['color']) ? $secondcatalogue[$id]['color'] : NULL;
    $url = !empty($secondcatalogue[$id]['url']) ? $secondcatalogue[$id]['url'] : NULL;

    echo'<figure style="display:inline-block;border:none;padding:1px;">';
    if (strlen($img) > 0) {
    echo '<img width="390" height="580" style="margin:55px 0 0 260px;" src="' . $img .'" alt="">';
    }if (strlen($img1) > 0) {
    echo '<img width="960" height="800" style="margin:55px 0 0 0;" src="' . $img1 .'" alt="">';
    }
    echo'</figure>';

    $audio2 = !empty($secondcatalogue_1[$id]['audio2']) ? $secondcatalogue_1[$id]['audio2'] : NULL;
    $img = !empty($secondcatalogue_1[$id]['img']) ? $secondcatalogue_1[$id]['img'] : NULL;
    $img2 = !empty($secondcatalogue_1[$id]['img2']) ? $secondcatalogue_1[$id]['img2'] : NULL;
    $img1 = !empty($secondcatalogue_1[$id]['img1']) ? $secondcatalogue_1[$id]['img1'] : NULL;
    $text = !empty($secondcatalogue_[$id]['text']) ? $secondcatalogue_[$id]['text'] : NULL;
    $color = !empty($secondcatalogue_1[$id]['color']) ? $secondcatalogue_1[$id]['color'] : NULL;
    $url = !empty($secondcatalogue_1[$id]['url']) ? $secondcatalogue_1[$id]['url'] : NULL;

    echo'<div>';
    echo'<figure style="display:inline-block;border:none;padding:1px;">';
    if (strlen($img) > 0) {
    echo '<img width="390" height="580" style="margin:55px 0 0 260px;" src="' . $img .'" alt="">';
    }if (strlen($img1) > 0) {
    echo '<img width="960" height="800" style="margin:55px 0 0 0;" src="' . $img1 .'" alt="">';
    }
    echo'</figure>';
    echo'</div>';
    echo'<div>';
    echo'<audio style="float:left;margin-left:325px;margin-top:20px;margin-bottom:50px;" controls preload="auto">';
    echo'<source src="'. $audio1 .'" type="audio/mp3"/>';
    echo'<source src="'. $audio2 .'" type="audio/mp3"/>';
    echo'<source src="'. $audio3 .'" type="audio/mp3"/>';
    echo'<source src="'. $audio4 .'" type="audio/mp3"/>';
    echo'</audio>';
    echo'</div>';
    echo'<div style="display:inline-block;margin-left:850px; margin-top:40px; margin-bottom:10px;">';

    echo'<a href="'.$url.'" download><img style="width="76"; height="76" src="../img/bouton-telecharger.png"></a>';

    echo'</div>';

    echo'<div style="float:left;width:150px; height:80px; margin:-65px 0 0 710px;">';
    echo'<a style="padding:1em 1.5em .7em 1.5em;border:1px solid #000;text-decoration:none;background:#fff;font-family:notoserif;font-weight:bold;color:#000;" href="http://s642262600.onlinehome.fr//index.php?img=..%2Fimg%2Flivre_1.jpg&prix=18.90&livre_1=ACHETER" >ACHETER</a>';
    echo'</div>';

    }else{
    echo "Catalogue inconnu !";
    }

    ?>
    merci
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      voici un extrait de ton code php, qui te montre que tu modifies trois fois $url après le var_dump:
      			  $url = !empty($catalogue[$id]['url']) ? $catalogue[$id]['url'] : NULL;
      			  		var_dump($url);
      // snip
      			  $url = !empty($catalogue_1[$id]['url']) ? $catalogue_1[$id]['url'] : NULL;
      // snip
      			  $url = !empty($secondcatalogue[$id]['url']) ? $secondcatalogue[$id]['url'] : NULL;
      //snip
      			  $url = !empty($secondcatalogue_1[$id]['url']) ? $secondcatalogue_1[$id]['url'] : NULL;
      // snip
      								echo'<a href="'.$url.'" download><img style="width="76"; height="76" src="../img/bouton-telecharger.png"></a>';
      il n'est donc pas surprenant que l'attribut href de la balise a dans le code source soit différent de ce que montre var_dump.

      tout autre chose: ton url "localhost/project_val_bis/page_principal/lecteur-audio.php" me semble bizarre.
      je suggère simplement "lecteur-audio.php".
      en effet, je suppose que lecteur-audio.php est accessible au même endroit que la page php dont on s'occupe pour le moment et dont je ne connais pas le nom.
      0
  9. boni91 Messages postés 26 Statut Membre
     
    la page lecteur-audio est le code source et effectivement est la meme page ou il y a le PHP, oui mais les urls sont dans 4 tableaux differents ou est ce que je devrai les différencier dans chaque tableaux comme pour les audio.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      tu avais prévu un seul bouton pour télécharger quatre musiques?
      0
  10. boni91 Messages postés 26 Statut Membre
     
    bah je me suis dit que si l'id envoyais une seul cle donc 1 valeurs ou plusieurs suivant le besoin, j'ai 4 tableau avec 13 choix audio chacun, j'ai essayer de mettre 4 bouton en renomment url, url1, url2, url4 mais toujours envoie du code source et en mème temps j'ai les quatre boutons qui s'affiche. alors la je suis un peu désespérer, je regarde un peu partout mais je ne trouve pas le probleme
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      j'ai l'impression que tu cours dans tous les sens sans prendre le temps de réfléchir.
      à quoi sert ['url'] dans les catalogues? ne faudrait-il pas commencer par supprimer cela?
      0
  11. boni91
     
    bonjour yb_be, oui effectivement je suis un peu perdu, pourquoi supprimer les URL si je veut permettre aux utilisateurs de pouvoir télécharger les sons, alors quel est la meilleurs solution. j'ai regarder sur plein de site différents qui dise que avec une simple balise <a></a> les navigateurs reconnaisse et permette le téléchargement. pour cela il faut bien identifier les URL? ou pas,

    car chrome, safari, opéra leurs lecteurs permette le telechargement, par contre mozilla non.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je pense que tu as tout ce qu'il faut dans ['audio2'], pourquoi avoir ['url'] en plus?
      0
  12. boni91
     
    merci énormément yb_be, pourtant j avais essayer comme ça et j 'avais eu des souci, sait pour cela que j'étais partis sur autre manière et la bizarrement ça fonctionne très bien.

    en tout cas merci pour votre patience et professionnalisme.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      avec plaisir!
      cette discussion peut-elle être marquée comme résolue?
      0