Transmission de headers

Transmission de headers - PHP - Programmation

Marsh Posté le 18-06-2007 à 12:10:19    

Salut tout le monde,
 
Je suis en train de créer une page web, sur laquelle on peut télécharger des sons mp3, cependant j'ai quelques soucis.
 
1) Sous Internet Explorer : Il peut se passer deux choses :
-soit j'ai l'invite de téléchargement qui me propose de télécharger la page et non le fichier.
-soit j'ai un texte crypté qui s'affiche dans le navigateur.
 
2)Sous Mozilla Firefox : L'invite de téléchargement fonctionne bien, mais c'est au moment du téléchargement que Mozilla affiche taille de fichier inconnue dans la fenêtre de téléchargement et celui ci ne télécharge pas le fichier en entier.
Peut-être ces problèmes sont ils liés?..
 
Si vous pouviez m'éclairer sur ces erreurs, cela m'aiderait énormément car cela fait 2 jours que je bloque...
 
Voici le lien pour que vous puissiez tester : http://slaneofficiel.free.fr/download.php?id=12
 
Et voici le code que j'ai écrit :  
 

Citation :


<?php
 
if(isset($_GET['id'])){
 
   $idcon=@mysql_connect('sql.free.fr','slaneofficiel','password');
   $idbase=mysql_select_db(slaneofficiel);
      if(!$idcon| !$idbase){
      echo "<script type=text/javascript>";
      echo "alert('Connexion impossible à la base')";
   }
 
   $id=$_GET['id'];
   $chemin='musiques/';
   $requete="SELECT titre FROM musiques WHERE id='$id'";
   $resultat=mysql_query($requete, $idcon);
   $num=mysql_num_rows($resultat);
      if($num == 1){
 
      $mus=mysql_fetch_row($resultat);
      $musique= $chemin.$mus[0];
      $taille= filesize("$musique" );
 
      header("Pragma: no-cache" );
      header("Expires: 0" );
      header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0" );
      header("Cache-Control: private",false);
      header("Content-Transfer-Encoding: binary" );
      header('Content-Type : audio/mpeg');
      header("Content-Length :".$taille);
      header("Content-Disposition: attachment; filename=\"".$mus[0]. "\";" );
      readfile("$musique" );
   }
   else{
      echo"Le fichier demandé n'a pas été trouvé";
   }
}
else{
   echo"Aucun fichier spécifié!";
}
 
?>


 
Pour info, l'hébergeur est Free; je ne connais pas les versions de PHP et MYSQL proposées par cet hébergeur...
 
PS : Le password n'est bien évidemment pas "password"^^
 
Merci par avance de votre aide


Message édité par warak le 22-06-2007 à 13:36:13
Reply

Marsh Posté le 18-06-2007 à 12:10:19   

Reply

Marsh Posté le 18-06-2007 à 13:54:01    

ben fait un phpinfo() pour avoir les versions de php et mysql...

Reply

Marsh Posté le 18-06-2007 à 14:00:37    

rufo a écrit :

ben fait un phpinfo() pour avoir les versions de php et mysql...


 
J'avais complètement zappé cette fonction  :pt1cable:  
 
Alors,
 
Version de php : 4.4.3
Version de Mysql : 5.0.34
 
Merci

Reply

Marsh Posté le 18-06-2007 à 22:43:49    

Personne ne s'y connait en force-download et en transmission de header??

Reply

Marsh Posté le 22-06-2007 à 13:36:51    

Personne pour m'aider??

Reply

Marsh Posté le 22-06-2007 à 13:46:50    

t'as des espaces en trop avant les ":" dans tes headers "content-type" et "content-length"


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 22-06-2007 à 14:33:48    

warak a écrit :

Personne ne s'y connait en force-download et en transmission de header??


header("Content-disposition:filename=tonficher.gloubiglouba$$" );
header("Content-type:application/octetstream" );
 


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 23-06-2007 à 18:14:44    

Salut grosbin et cgo2,
 
Je testerai ce soir et je vous dirai ce qu'il se passe,
 
Merci de votre réponse!

Reply

Marsh Posté le 24-06-2007 à 16:58:42    

Bon, sur Mozilla Firefox, il semblerait qu'il n'y ait plus de problème quant à la reconnaissance de la taille, mais il subsiste un problème, Mozilla ne télécharge seulement 1Mo sur 11Mo de la musique.. Est ce normal??
 
Sur Internet Explorer, l'invite de téléchargement me propose toujours de télécharger la page web et non le fichier... ??
 
Voici la partie header modifiée :
 
 
  header("Pragma: no-cache" );
  header("Expires: 0" );
  header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0" );  
  header("Cache-Control: private",false);
  header("Content-Transfer-Encoding: binary" );
  header("Content-Type:application/octetstream" );
  header("Content-Length:".$taille);
  header("Content-Disposition:filename=\"".$mus[0]. "\";" );  
  readfile("$musique" );
 
Merci de votre aide!  
 
 

Reply

Marsh Posté le 30-06-2007 à 23:12:29    

Up :D, Personne pour m'aider?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed