Url non reconnue [Résolu]

boni91 - 26 nov. 2017 à 10:00 - Dernière réponse :  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
Afficher la suite 

20 réponses

Répondre au sujet
jordane45 19213 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 26 nov. 2017 à 10:12
0
Utile
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://www.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);?> 


Commenter la réponse de jordane45
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 10:33
0
Utile
1
merci pour la reponse, donc si je comprend bien, mon url serais de se type,

http://www.francaispouradultes/mp3/page125.mp3
jordane45 19213 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 26 nov. 2017 à 11:03
Oui
Commenter la réponse de boni91
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 11:11
0
Utile
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.
Commenter la réponse de boni91
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 26 nov. 2017 à 11:34
0
Utile
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.
Commenter la réponse de yg_be
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 11:45
0
Utile
1
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.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 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?
Commenter la réponse de boni91
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 11:53
0
Utile
1
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.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 26 nov. 2017 à 12:43
montre le code source de ta page html, et ton code php.
Commenter la réponse de boni91
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 16:45
0
Utile
1
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
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 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.
Commenter la réponse de boni91
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 18:19
0
Utile
1
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.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 26 nov. 2017 à 19:21
tu avais prévu un seul bouton pour télécharger quatre musiques?
Commenter la réponse de boni91
boni91 13 Messages postés dimanche 12 novembre 2017Date d'inscription 26 novembre 2017 Dernière intervention - 26 nov. 2017 à 19:40
0
Utile
1
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
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 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?
Commenter la réponse de boni91
0
Utile
1
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.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 27 nov. 2017 à 19:25
je pense que tu as tout ce qu'il faut dans ['audio2'], pourquoi avoir ['url'] en plus?
Commenter la réponse de boni91
0
Utile
1
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.
yg_be 4116 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 27 nov. 2017 à 19:52
avec plaisir!
cette discussion peut-elle être marquée comme résolue?
Commenter la réponse de boni91
Commenter la réponse de Boni91