PHP Lien download.php?id=123 Comment en créer

Résolu/Fermé
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 - 25 janv. 2008 à 16:56
 Burkinanonymous - 5 nov. 2013 à 13:17
Salut,

Depuis je ne sais comben de jours je suis a la recherche de cette astuce....


Je ne sais pas si vous seriez capable de me répondre mais, j'aimerais inclure du php dans ma page de téléchargement, au lieu d'avoir une adresse tel que http://monsite/v6/mp3/titredumix.zip d'avoir une adresse tel que http://monsite/v6/download.php?id=123

Est-ce possible ???

j'aimerais avoir le code complet recopier s'il y a erreur dans le mien

Le code a mettre dans download.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>T&eacute;l&eacute;charger</title>
</head>
<body>
<br>

<?php 
$id = $_GET['id'];
if ($id= '1')
{
$file = '/mp3/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
};

elseif etc avec ts les autres fichiers...

header('Content-Transfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$file.'"');
header('Content-Disposition: attachment; filename="'.$file.'"');

</body>
</html>


Et le code dans ma page pour renvoyer le téléchagement....

<a href="/download.php?id=1">T&eacute;l&eacute;charger</a>


Mais quand je le mets il me dit

Parse error: syntax error, unexpected T_ELSEIF in /home/web573/web/v6/html/download.php on line 23


Quelqu'un sait-il pourquoi ???

13 réponses

Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
26 janv. 2008 à 03:10
<?php
$id = $_GET['id'];
switch ($id){

case '12':
$file = '/mp3/Dj dodo - Turn Me Up !.zip';
break;
case '11':
$file = '/mp3/Dj%20dodo%20-%20No%20Matter%20What%20Do%20You%20Do.zip';
break;
case '10':
$file = '/mp3/Dj%20Dodo%20-%20Push%20for%20satisfaction.zip';
break;
case '9':
$file = '/mp3//Dj%20dodo%20-%20My%20lover%20is%20gone.zip';
break;
case '8':
$file = '/mp3/Dj%20dodo%20-%20Born%20to%20Dream.zip';
break;
case '7':
$file = '/mp3/Dj%20dodo%20-%20Bring%20your%20nose.zip';
break;
case '6':
$file = '/mp3//Dj%20dodo%20-%20Mr.%20Confusion%20.zip';
break;
case '5':
$file = '/mp3/Dj%20dodo%20-%20Your%20Strange%20Confusion.zip';
break;
case '4':
$file = '/mp3/Arabian%20adventure%203%20%28Long%20version%29%20-%20Dj%20Antoine%20ft.%20Dj%20dodo.zip';
break;
case '3':
$file = '/mp3/What%20a%20feeeeeeling%20-%20Dj%20dodo.zip';
break;
case '2':
$file = '/mp3/Don%27t%20stop%20your%20body%20-%20Dj%20dodo.zip';
break;
case '1':
$file = '/mp3/Beautiful%20body%20-%20Dj%20dodo.zip';
break;
}
header('Content-Transfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$file.'"');
header('Content-Disposition: attachment; filename="'.$file.'"');
header("Location:".$file);

?>


ça fonctionne !!!!
6
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
25 janv. 2008 à 20:29
ça ne fonctionne pas encore....

voici le code complet de ma page php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>T&eacute;l&eacute;charger</title>
</head>
<body>

<br>

<?php 
	$id = $_GET['id'];
	switch ($id){
	case '1':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
	case '2':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
	case '3':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
		
header('Content-Transfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$file.'"');
header('Content-Disposition: attachment; filename="'.$file.'"');
header("Location:".$file);
	}
?>

</body>
</html>
4
Bonsoir,

<?php
$id = $_GET['id'];
if ($id= '1')
{
$file = '/mp3/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
};

elseif etc avec ts les autres fichiers..


Déja tu as un ; en trop après la } du if

Et puis si tu as beaucoup de num d'id à traiter cela va être la galère avec tous les elseif

optes plutôt pour la solution du switch case plus claire et plus souple

switch ($id){
	case '1':
	$file = '/mp3/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
	case '2':
	$file = '/mp3/..................................zip';
	break;
	case '3':
	$file = '/mp3/..............................zip';
	break;
  //etc.....
}
2
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
25 janv. 2008 à 17:27
salut,

c'est sans doute parce que tu n'as pas échappé ton commentaire.
elseif //etc avec ts les autres fichiers...
0

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

Posez votre question
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
25 janv. 2008 à 17:35
ok je vais essayer
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
25 janv. 2008 à 17:44
et d'ailleurs il faut aussi enlever un point-virgule, ajouter les accolades et la fermeture de balise PHP.
<?php 
	$id = $_GET['id'];
	if ($id= '1')
	{
		$file = '/mp3/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	}
	elseif 
	{
		header('Content-Transfer-Encoding: none');
		header('Content-Type: application/octetstream; name="'.$file.'"');
		header('Content-Disposition: attachment; filename="'.$file.'"');
	}
?>
</body>

0
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
25 janv. 2008 à 18:06
Ok cela fonctionne mais il y a encore une erreur,

Il ne m'indique pas d'erreur, mais le fichier spécifier ne commence pas a télécharger...

j'ai utiliser le code d'alain42


Vous pouvez le tester au http://djdodo.servhome.org/v6/html/down.php?id=1

Et voila !
0
Bonsoir,


Il te manque:

header("Location:".$file);


à la suite de tes 3 headers(....
0
Si je ne m'abuse, il ne faut pas envoyer de caracteres HTML avant le header.
Alors essayes en enlevant tout ce qui est avant <?php et après ?>
0
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
25 janv. 2008 à 21:00
j'ai essayer Mais ça ne fonctionne pas encore !

<?php 
	$id = $_GET['id'];
	switch ($id){
	case '1':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
	case '2':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
	case '3':
	$file = '/Dj%20dodo%20-%20Turn%20Me%20Up%20%21.zip';
	break;
		
header('Content-Transfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$file.'"');
header('Content-Disposition: attachment; filename="'.$file.'"');
header("Location:".$file);
	}
?>

0
Alors est tu sur de ton chemin vers tes fichiers

car tel que tu les mets, ils doivent être dans le même répertoire que ton script.

Y sont-ils ?
0
Djdodo2 Messages postés 13 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008 10
25 janv. 2008 à 21:57
Oui... ils sont dans le meme répertoire !!!

regarde l'Adresse pour le tester est http://djdodo.servhome.org/down.php?id=1

Mais ça ne fonctionne pas quand meme !!! :(
0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Téléchargements </title>
</head>

<body>
<?php

/////////////////////////// IMPORTANT //////////////////////
////// Lisez les commentaires s'il vous plait ! //////
//Créer une page de fichiers à télécharger
//Voici une solution rapide pour mettre en place une liste de fichiers
// à télécharger dans une page statique.
//
//L'idée est d'afficher sous forme de liste les noms de fichiers
//d'un dossier sous forme de lien cliquable ;
//les fichiers affichés sont filtrés par leur extension et le chemin
// d'accès au fichier est masqué.
//
//Important : si les fichiers sont uploadés manuellement (par FTP),
//veillez à ce qu'ils soient nommés avec
// uniquement des minuscules, des chiffres et le caractère "_" de
//manière à valider l'expression régulière qui
//sélectionne les fichiers dans le code ci-dessous :
//
// a-z0-9-_
// Installation
// 1. Les différentes versions sont préédées par le signe " # "
//et sont aux choix .
// 2. Créez une page statique et copiez dedans le code suivant
////////////////////////////////////////////////////////////////


# PluXml 5.1+


global $plxShow;
// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/telechargements';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
echo '<ul class="telechargements">';
foreach($files as $filename) {
$encrypt = str_replace('/','',$sousdir).'/'.$filename;
$file = $dir.'/'.$filename;
echo '<li><a href="';
$plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
echo '">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Aucun document";

# PluXml 5.0+

// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.'/'.$filename;
echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Aucun document";


# PluXml 4.2


// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.'/'.$filename;
echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
}
echo '</ul>';
}
else echo "Aucun document";

// Version avec affichage de la taille des fichiers :

# PluXml 5.0+


// Nom du dossier images à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des images sous forme de liste
$glob = plxGlob::getInstance($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.'/'.$filename;
$size = ceil(filesize($file)/1024);
echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Ko)</li>';
}
echo '</ul>';
}
else echo "Aucun document";


# PluXml 4.2


// Nom du dossier images à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des images sous forme de liste
$glob = new plxGlob($dir);
if ($files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
echo '<ul class="telechargements">';
foreach($files as $filename) {
$file = $dir.'/'.$filename;
$size = ceil(filesize($file)/1024);
echo '<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Ko)</li>';
}
echo '</ul>';
}
else echo "Aucun document";

//////////////////////////////////////////////////////////////
// 3. Modifiez la ligne suivante en remplaçant par l'emplacement de vos fichiers.
/// " // Nom du dossier fichiers à renseigner "
//" $dir = 'data/documents'; "
//4. Ajustez le filtre des fichiers à afficher
//
//Ajoutez/supprimer des extensions à la liste
//
//(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)
//Personnalisation de l'affichage de la galerie
//Vous pouvez mettre en forme l'affichage de votre page en ajoutant un style dans
// le fichier style.css de votre thème pour la classe appelée "telechargement",
//définie dans le code source par la //ligne:
// echo '<ul class="telechargements">'
///////////////////////////////////////////////////



?>


<cite> Libre à vous d'en faire ce que vous voulez !!! </cite>
</body>
</html>
0