petit pb a la con

petit pb a la con - PHP - Programmation

Marsh Posté le 26-08-2004 à 16:22:02    

Bonjour a vous
 
je prppose un site ou l'on peut telecharger les fichier. seulement pour telecharger ces fichier je doit passer par une page download pour incrementer une valeur hit.
 
Pour l'instanrtout marche, a part que pour telecharger le fichier il faut cliquer sur un lien.
 
JE voudrai soit que le fichier s'enregistre tout seul des que jouvrema page download (cajai deja bagarer dessus 3 JOUR SANS REUSSIR donc jai laisser tomber) ou plus s'implement que des que je clique sur mon lien ma fenetre se ferme.
 
pour la deuxieme solution, jai essayer avec

Code :
  1. OnClick=javascript:window.close()


 
ca marche pas mal mais il me dl pas le fichier, il ferme juste la fenetre.
 
si qu'elqu'un a une solution voici le code de ma page download :
 

Code :
  1. <body text="#000000" bgcolor="#CDCDCD" link="#9999FF" vlink="#6699FF" alink="#FFFF00">
  2. <?
  3. //echo header("MIME-Version: 1.0" );
  4. //echo header("Content-Disposition:attachment;filename=$file" );
  5. //header("Content-Type: octet-stream" );
  6. //header("Content-disposition: attachment; filename=$file" );
  7. //header("Content-Type: application/force-download" );
  8. //header("Content-Type: application/octet-stream" );
  9. //header("Content-Transfer-Encoding: binary" );
  10. //header("Content-Disposition: attachment; filename=$fichier" );
  11. //readfile($url.$fichier);
  12. /*
  13. header("content-type: application/octet-stream" );
  14. header("Content-Disposition: attachment; filename=".$_GET["dl"]);
  15. $filename=$_GET['dl'];
  16. flush(); // Envoie le buffer
  17. readfile($chemin.$_GET["dl"]);
  18. */
  19. $urlen=$_GET["dl"];
  20. echo "<center>";
  21. $chaine4 = preg_match_all("|(.*)/([-_a-zA-Z,0-9,(.*)]+)[.]([-_a-zA-Z,0-9,(.*)]+)$|", $urlen, $regs, PREG_PATTERN_ORDER);
  22. $url = $regs[1][0];
  23. $fichier = $regs[2][0].".".$regs[3][0];
  24. //echo "url : ".$url."<P>";
  25. //echo "fichier : ".$fichier."<P>";
  26. echo "<center>";
  27. $chaine4 = preg_match_all("|(.*)/([-_a-zA-Z,0-9,(.*)]+)[.]([-_a-zA-Z,0-9,(.*)]+)$|", $urlen, $regs, PREG_PATTERN_ORDER);
  28. $url = $regs[1][0];
  29. $fichier = $regs[2][0].".".$regs[3][0];
  30. echo "url : ".$url."<P>";
  31. echo "fichier : ".$fichier."<P>";
  32. $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
  33. mysql_select_db('fichier',$db) or die('Erreur de selection '.mysql_error());
  34. $query1= "SELECT * FROM espacetech WHERE nom = '".$fichier."' AND Emplacement = '".$url."'";
  35. $req = mysql_query($query1) or die('Erreur MySQL!<br>'.$query1.'<br>'.mysql_error());
  36. while($affiche = mysql_fetch_array($req))
  37. $hit = $affiche['hit'];
  38. $hit=$hit+1;
  39. $sql = "UPDATE espacetech SET hit = '".$hit."' WHERE nom = '".$fichier."' AND Emplacement = '".$url."'" ;
  40.         //. ' ';
  41. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  42. $file="$url/$fichier";
  43. echo "<td><a href='$url/$fichier' OnClick=javascript:window.close()>telecharger le fichier</td>";
  44. echo "</center>";
  45. ?>


 
 :heink:

Reply

Marsh Posté le 26-08-2004 à 16:22:02   

Reply

Marsh Posté le 26-08-2004 à 17:55:19    

up  
 
meme si je suit un gros boulet que jarrive pas a faire un truc tt con sur lequel jai surrement la solution sous les yux.
 
plz help

Reply

Marsh Posté le 26-08-2004 à 18:10:24    

Salut,
 
tu ne devrais en aucun cas avoir des headers après de l'html (mème un espace). Donc  

Code :
  1. <body text="#000000" bgcolor="#CDCDCD" link="#9999FF" vlink="#6699FF" alink="#FFFF00">
  2.   <?
  3.   header("content-type: application/octet-stream" );
  4.   ?>
  5. ....


pas bon..
 
Pour le javascript de fermeture, c'est normal, l'évènement onclick survient avant le lien (essaies de lui mettre un timeout..).

Reply

Marsh Posté le 27-08-2004 à 15:04:24    

jsuis nul en java

Reply

Marsh Posté le 27-08-2004 à 15:17:23    

sub1 a écrit :

Salut,
 
tu ne devrais en aucun cas avoir des headers après de l'html (mème un espace).
 
pas bon..


 
Ben ce n'est pas le cas .. les headers() sont entre /* */
 
Me semble que tu étais bien parti non ?
 
Imaginons que ton script s'appelle "autodownload.php" ...
1) page de sélection du fichier : <a href="autodownload.php?fichier=truc.machin">truc.machin</a>
2) dans ton autodownload.php :  
   - header() comme tu l'avais fait.
   - choper le filename
   - routine MySQL pour compter .. mais PAS D'ECHOes !!!
   - ouvrir fichier et le cracher.
 
Non ?

Reply

Marsh Posté le 27-08-2004 à 19:57:02    

albator-hc a écrit :

jsuis nul en java

Java n'a rien à voir avec le JavaScript  :o
et 'petit pb a la con' c'est un titre à la con re- :o


Message édité par effisk le 27-08-2004 à 19:58:05

---------------
London Box Office: Comédie Musicale Londres
Reply

Sujets relatifs:

Leave a Replay

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