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

Résolu
Djdodo2 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
 Burkinanonymous -
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 ???
A voir également:

13 réponses

Djdodo2 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   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   Statut Membre Dernière intervention   10
 
ç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
alain42
 
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   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   10
 
ok je vais essayer
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   10
 
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
alain42
 
Bonsoir,


Il te manque:

header("Location:".$file);


à la suite de tes 3 headers(....
0
alain42
 
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   Statut Membre Dernière intervention   10
 
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
alain42
 
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   Statut Membre Dernière intervention   10
 
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
Burkinanonymous
 
<!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