Page 1 sur 1

redirection > download.php?id=1

Posté : 05 mai 2005, 21:32
par Alain
bonjour a touts et a toutes, je débute un peu en php, on m'aide, j'etudie un peu, ect...

ce que je cherches a faire ce serais un fichier download.php qui ne ferais QUE de la redirection

imaginons que je tappe racine/download.php?id=1
le fichier php irais chercher dans la bdd le fichier correspondant a id=1
et me redirigerais donc vers un mp3 situé dans un compte multimania ou free quelquonque situé a l 'autre bout du web


alors j 'ai demandé a un ami :
voila ce que j 'ai fait avec lui :


------------------
download.php
------------------

Code : Tout sélectionner

<? $redi = $_GET['id']; mysql_connect("sql.free.fr", "monlogin", "password"); mysql_select_db("suresnestk"); $retor = mysql_query("SELECT url FROM liens WHERE id='$redi'"); while ($dona = mysql_fetch_array($retor)) { $redire = $don['url']; header("Location: ".$redire.""); exit; } ?>


---------------------------
page1.php
---------------------------

Code : Tout sélectionner

<html> <head> <title>tapage d liens</title> </head> <body> <? mysql_connect("sql.free.fr", "monlogin", "password"); mysql_select_db("suresnestk"); $retor = mysql_query("SELECT id FROM liens id='1'"); while($don = mysql_fetch_array($retor)) { ?> <a href="download.php?id='".$don['id']."'">lien 1</a> <?} $retour = mysql_query("SELECT id FROM liens WHERE id='2'"); while ($dona = mysql_fetch_array($retour)) { ?> <a href="download.php?id='".$don['id']."'">lien 2</a> </body> <?} ?> </html>
----------------------------------------


pour ce qui est de la bdd :

-----------------------------------------

Code : Tout sélectionner

-- -- Structure de la table `liens` -- CREATE TABLE `liens` ( `id` int(11) NOT NULL auto_increment, `url` varchar(255) NOT NULL default '', KEY `id` (`id`) ) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -- Contenu de la table `liens` -- INSERT INTO `liens` VALUES (1, 'http://www.the-song-family.com/song_family-mp3_gratuit.mp3');

si vous savez voyez ce qui cloche ça m'aiderais bien bien, et si vous avez une solution de rechange, un code deja tout ecris pour arriver a rediriger je suis preneur

a plus ++

Posté : 05 mai 2005, 21:39
par Cyrano
<?
$redi = $_GET['id'];
mysql_connect("sql.free.fr", "monlogin", "password");
mysql_select_db("suresnestk");
$retor = mysql_query("SELECT url FROM liens WHERE id='$redi'");
while ($dona = mysql_fetch_array($retor))
{
$redire = $don['url'];
header("Location: ".$redire);
exit;
}
?>
regarde la modif à la ligne header...

Posté : 05 mai 2005, 23:29
par Invité
merci Cyrano

j'ai donc changé le fameux " header('$redire'); "
pour " header("Location: ".$redire); "

mais les choses semblent ne pas avoir changées.

j'ai pas les competences mais ça ne viendrais pas d'une fonction interdite par Free ?



( code du 1er post édité pour coller au present )

Posté : 05 mai 2005, 23:39
par Cyrano
je crois que je sais d'où ça vient, j'ai oublié un truc :
header("Location: ".$redire."") ;
J'avais ouvert les guillemets, mais oublié de les fermer.

Posté : 05 mai 2005, 23:51
par Alain
non, ça a pas l 'air d'etre ça, j 'ai que des pages blanches, sauf pour page1.php qui me renvoie
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/1/3/suresnestk/page1.php on line 14

Posté : 05 mai 2005, 23:58
par Cyrano
Il est temps que j'aille me coucher, j'avais pas trop regardé le reste du code: tu as envoyé des variables php telles quelles dans du html, ça ne pouvait pas marcher:
<html>
<head>
   <title>tapage d liens</title>
</head>
<body>
<?
mysql_connect("sql.free.fr", "monlogin", "password");
mysql_select_db("suresnestk");
$retor = mysql_query("SELECT id FROM liens id='1'");
while($don = mysql_fetch_array($retor))
{
?>
<a href="download.php?id=<?php echo($don['id']); ?>">lien 1</a>
<?
}
$retour = mysql_query("SELECT id FROM liens WHERE id='2'");
while ($dona = mysql_fetch_array($retour))
{
?>
<a href="download.php?id=<?php echo($don['id']); ?>">lien 2</a>
</body>
<?
}
?>
</html>

Posté : 06 mai 2005, 01:30
par fab
je crois que je sais d'où ça vient, j'ai oublié un truc :
header("Location: ".$redire."") ;
J'avais ouvert les guillemets, mais oublié de les fermer.
non non, normalement tu n'as pas besoin de faire un guillement vide a la fin.
donc le code suivant est tout a fait correct :
header("Location: " .$redire);

Posté : 06 mai 2005, 08:43
par albat
Une première vérification - très simple - à faire, c'est de compter ses guillemets (ou apostrophes).
Si le nombre est impair, y a forcément un schmurtz. :idea:

Posté : 06 mai 2005, 17:21
par Alain
ya pas de probleme au niveau des guillemet, j'ai bien vérifié que qu'il y avait a chaque fois un "ouvert" pour un "fermer" .

sympa ton proverbe indien Albat


ce systeme de download, je sais pas vous mais je l 'ai vu sur pas mal de sites quand meme ( par contre quand il faut les citer ça me reviens pas )
donc c 'est fesable, c 'est sur, mais je vois pas d'où viens la couille


:? j'ai posté dans " php debutant " parce que je suis débutant
mais estce qu'il faudrait déplacer le sujet dans " php " tout court car c 'est un truc assez aboutis quand meme ?