Rechercher : dans
Par :

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

Dernière réponse le 26 jan 2008 à 03:10:43 Djdodo2, le 25 jan 2008 à 16:56:53 
 Signaler ce message aux modérateurs

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 ???

Meilleures réponses pour « PHP Lien download.php?id=123 Comment en créer » dans :
Créer un site beau, dynamique et respectueux des standards VoirVoici une liste de liens qui vous aideront à mieux exploiter les standards (HTML, CSS, DOM...) pour créer des sites plus beaux, plus dynamiques et plus respectueux des standards. A la fin de cette page, il y a également une liste de...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...

1

Dalida, le 25 jan 2008 à 17:27:46

Salut,

c'est sans doute parce que tu n'as pas échappé ton commentaire.

elseif //etc avec ts les autres fichiers...

[ Mathieu ]
« On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007.

Répondre à Dalida

2

Djdodo2, le 25 jan 2008 à 17:35:45

Ok je vais essayer

Répondre à Djdodo2

3

Dalida, le 25 jan 2008 à 17:44:58

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>


[ Mathieu ]
« On embauchera plus s'il est moins compliqué de licencier. » LP, 29 août 2007.

Répondre à Dalida

4

alain42, le 25 jan 2008 à 17:45:28
  • +1

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.....
}

Répondre à alain42

5

Djdodo2, le 25 jan 2008 à 18:06:43

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 !

Répondre à Djdodo2

6

alain42, le 25 jan 2008 à 20:07:42

Bonsoir,


Il te manque:

header("Location:".$file);


à la suite de tes 3 headers(....

Répondre à alain42

7

Djdodo2, le 25 jan 2008 à 20:29:15
  • +2

ç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>

Répondre à Djdodo2

8

alain42, le 25 jan 2008 à 20:39:26

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 ?>

Répondre à alain42

9

Djdodo2, le 25 jan 2008 à 21:00:28

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);
	}
?>

Répondre à Djdodo2

10

alain42, le 25 jan 2008 à 21:05:32

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 ?

Répondre à alain42

11

Djdodo2, le 25 jan 2008 à 21:57:02

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 !!! :(

Répondre à Djdodo2

12

 Djdodo2, le 26 jan 2008 à 03:10:43
  • +4

<?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 !!!!

Répondre à Djdodo2