Forcer le telechargement d'un mp3 ! bug!!

diice Messages postés 142 Statut Membre -  
diice Messages postés 142 Statut Membre -
Bonjour,

J'ai un gros sousic, et j'arrive pas a voir d'ou il vient !

J'ai du faire les 15 messages de ce forum concernant le telechargement d'un fichier forcé, en l'occurence pour moi un mp3.

J'ai bien fait comme tout le monde le montrait. mais ca marche pas !
Je sais pas si c dû au serveur qui m'heberge, ou si c vraiment une faute de ma part !

Alors par rapport aux différentes discussions a ce sujet, le seul truc qui change de mon coté c'est u appel de donné.

En fait, j'appelle pas un fichier, mais un "id" de mp3... normalement il devrait me le convertir... mais que neni !

entre erreur de CGI, entre autre erreur ne trouve pas le fichier.. ou alors il le trouve mais il le lit qd meme dans le navigateur... j'arrive pas a savoir ou est ma faute !

bref, le code expliquera mieux que moi ;)

donc, dans ma page ou ce situe le lien :
<a href="http://www.moije.net/sons/nbdownload.php?idmedias=<?php echo $row_medias['idmedias']; ?>" target="_blank">mon lien</a>


et donc, dans ma page nbdownload.php, qui ajoute +1 a ma base sur le champs 'download' j'ai ca :

     $db = mysql_connect("$serveur","$user","$password") or die("Connexion impossible");
     mysql_select_db("$base",$db);

    $req = mysql_query("SELECT * FROM medias WHERE idmedias='$idmedias'");
     $res = mysql_num_rows($req);
$i=0;
$row = mysql_fetch_array($req);

    $mfichier = mysql_result($req,$i,"mfichier");
    $mdossier = mysql_result($req,$i,"mdossier");
    $nbdownload = mysql_result($req,$i,"nbdownload");


     mysql_query("UPDATE medias SET nbdownload='$row[nbdownload]'+1 WHERE idmedias='$idmedias'") or die ("Mauvaise requête");

mysql_close();

$chemin = "http://moije4.free.fr/moije/$row[mdossier]/";
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$row[mfichier]");
readfile ("$chemin$mfichier.mp3");


et la j'ai probleme CGI ! "CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers."

je comprend pas d'ou ca vient !!!

pourriez vous m'aider s'il vous plait ???

merci bien ;) et d'avance !
A voir également:

2 réponses

diice Messages postés 142 Statut Membre 1
 
alors pour info, j'ai essayer avec un autre code...

celui -ci (apres mysql_close();) :

$fichier = "$mfichier.mp3";
$chemin = "mp3/$mdossier/" . $fichier;

if (file_exists($chemin))
   {
      header('Content-disposition: attachment; filename="' . $fichier . '"');
      header('Content-Type: application/force-download');
      header('Content-Transfer-Encoding: binary');
      header('Content-Length: '. filesize($chemin));
      header('Pragma: no-cache');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      header('Expires: 0');
      readfile($chemin);
  }
  else
  {
      $erreurFichier = 'le fichier "' . $fichier . '" n\'existe pas. Veuillez-nous excusez pour le désagrément.';
  }


la il me met page blanche.... !!! snif....

par contre, qd je lui met un
echo "$mdossier/$mfichier";
ala place de tout le code, il m'affiche bien mon $mdossier et $mfichier...
alors la variable est bonne, mais pourquoi ca marche pas des que je la met dans le code ci-dessus ???

HELPPPPPPP !!! :):)
0
diice Messages postés 142 Statut Membre 1
 
bon c resolu !!!

on peut pas faire ca sur un appel de fichier placé sur un autre serveur... tout betement !

Donc, voilà,j'ai tout remis sur mon serveur ou est hebergé le site, et ca marche !!

désolé a tous du dérangement !

enfin, le code ci-dessus marche, ca peut servir !!!

A bientot pour de nouvelles aventures !!!

en tout cas, tout ca marche là : https://www.moije.net/ (partie son, et popup telechargemetn ;)

Bonne journée !
0