Url non reconnue

Résolu/Fermé
boni91 - 26 nov. 2017 à 10:00
 Boni91 - 28 nov. 2017 à 07:03
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 nov. 2017 à 10:12
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
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 10:33
merci pour la reponse, donc si je comprend bien, mon url serais de se type,

http://www.francaispouradultes/mp3/page125.mp3
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
26 nov. 2017 à 11:03
Oui
0
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 11:11
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 11:34
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 11:45
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 12:46
quand tu écris "essayer avec cet url", merci d'écrire où tu as essayé:
- dans la barre d'adresse de ton navigateur?
- ailleurs?
0
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 11:53
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 12:43
montre le code source de ta page html, et ton code php.
0
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 16:45
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>© - 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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 17:29
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
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 18:19
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 19:21
tu avais prévu un seul bouton pour télécharger quatre musiques?
0
boni91 Messages postés 23 Date d'inscription dimanche 12 novembre 2017 Statut Membre Dernière intervention 22 juillet 2018
26 nov. 2017 à 19:40
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
26 nov. 2017 à 20:23
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
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 nov. 2017 à 19:25
je pense que tu as tout ce qu'il faut dans ['audio2'], pourquoi avoir ['url'] en plus?
0
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
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 nov. 2017 à 19:52
avec plaisir!
cette discussion peut-elle être marquée comme résolue?
0
Oui merci
0