redirection telechargement...

redirection telechargement... - PHP - Programmation

Marsh Posté le 16-03-2006 à 11:25:30    

Bonjour,  
 
Je suis en train de faire une appli en php qui permet de télécharger des fichiers. Je veux compter combien de fois chaque fichier est téléchargé, donc je fais une page download.php qui prend en paramètre l'id du telechargement, comme ca je peux incrementer dans ma base de données. Tout ca marche bien, mais c'est le téléchargement qui me cause du souci. J'ai fait un petit lien qui marche très bien, mais ce que je voudrais, c'est que le telechargement soir proposé au chargement de la page, puisque les gens auront cliqué pur ca. En redirection php ca me jette parce que j'ai deja envoyé du html avant, en redirection html ca fait n'importe quoi, et en redirection javascript ca marche, mais la page n'est plus affichée, donc si les gens font annuler ils n'ont plus de lien pour télécharger. C'est pas très embetant en soi, mais quand meme, si je pouvais faire afficher le lien sur la page ce serait aussi bien.
 
 
Je sais pas trop comment m'y prendre, en quel langage le faire...
merci d'avance de vos réponses :)
 
 
Amandine


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 11:25:30   

Reply

Marsh Posté le 16-03-2006 à 11:27:41    

header('Location: toto.zip');
 
:D


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 16-03-2006 à 11:29:46    

ben non, ca ne marche pas parce que j'ai deja plein de trucs envoyés avant, donc l me sort un message genre headers already sent...


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 11:33:50    

Fab4am a écrit :

ben non, ca ne marche pas parce que j'ai deja plein de trucs envoyés avant, donc l me sort un message genre headers already sent...


 
Pourquoi tu envois des messages avant aussi, si tu veux qu'il telecharge direct son fichier, ne met pas d'html.


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 16-03-2006 à 11:37:07    

parce que c'est inclus dans une structure avec un header, un footer, un menu...  
 
:/


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 11:44:00    

Sujet "gold" sur ce forum. Enfin, peut être pas gold, mais au moins dans l'échapé des questions les plus posé dans la sous-catégorie PHP.
Donc comme tu l'as deviné, ca merde à cause de l'html, donc à toi de ne rien envoyer avant le header, je te laisse fouiller le forum pour trouver la solution vu que ca revient plusieurs fois par jours.

Reply

Marsh Posté le 16-03-2006 à 11:47:44    

j'ai cherché pourtant sur le forum avant de poster...
je veux bien ne rien envoyer et donc ouvrir une nouvelle fenetre, mais est ce qu'il n'existe pas un moyen de faire autrement? c'est celle la ma vrai question! ;)


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 11:58:01    

Fab4am a écrit :

j'ai cherché pourtant sur le forum avant de poster...
je veux bien ne rien envoyer et donc ouvrir une nouvelle fenetre, mais est ce qu'il n'existe pas un moyen de faire autrement? c'est celle la ma vrai question! ;)


 
Dans ton download.php n'appele pas ton headers et ton footeur tout simplement...
 
<a href="download.php?idfile=555">Telecharger Subaru.zip</a>

Code :
  1. require_once 'configmysql.inc.php';
  2. if(isset($_GET['idfile']))
  3. {
  4.    if(preg_match('@^[0-9]*$@',$_GET['idfile']))
  5.    {
  6.         //Blabla +1 dans mysql et reccuparation url fichier
  7.        header('Location: '.$monfichier);
  8.    }
  9. }


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 16-03-2006 à 12:03:28    

ouais mais non, parce que en fait, j'appelle pas mon header et mon footer dans la page, mais c'est lka page qui est appelée par le index.php qui appelle aussi header et footer


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 12:12:04    

mais appele ton download.php rien que pour faire ça, pas besoin d'indexe ou quoi que se soit.


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 16-03-2006 à 12:12:04   

Reply

Marsh Posté le 16-03-2006 à 12:57:48    

fab4am > Si j'ai bien compris, pour le moment, sur ton site, le seul script qui peut envoyer un header ou mettre des infos dans un cookie, c'est la page index.php.
Tu te sens pas trop limité par ces limitations?
 
J'ai cherché "headers already sent" juste dans les titres du forum et dans la  5éme discution retourné par le moteur de recherche, la solution est noté noir sur blanc.

Reply

Marsh Posté le 16-03-2006 à 13:13:57    

je comprends bien omega2, mais mon problème n'est pas headers already sent puisque je sais pourquoi ca me mets ce message. C'est pour ca que je n'ai pas cherché avec ces mots!
 
Effectivement, index.php est la seule appelée finalement, toutes les autres pages sont incluses dans celle ca. Je ne sais pas si ca se fait ou non, je ne sais pas si c'est bien ou pas, toujours est-il que pour l'instant ca marche et que j'arrive à faire ce que je veux.
Je précise quand même que je suis débutante, c'est ma première appli que je construis entièrement, et donc j'apprends au fur et à mesure.
 
Pour le problème de téléchargement, j'ai finalement quasiment tout inclus dans index.php, et c'est très bien comme ca vu qu'il n'y a même plus de page intermédiaire.
 
Merci de toute votre aide et du temps passé à écrire ces messages, désolée si je vous ai énervée avec mon problème, maintenant je sais comment faire =)
 
Amandine


---------------
www.linux-usb.net : Installez linux sur votre clé USB !
Reply

Marsh Posté le 16-03-2006 à 14:56:11    

fab4am > Ton probléme, d'aprés ce que tu disais au début, c'est que t'arrivais pas à faire de redirection en php. Donc ton probléme, c'était donc bien le "header already sent" au vu de ce que tu disais.
 
Enfin bon, si t'as résolut ton probléme (en passant, c'est à noter à la fin du sujet) en ayant un code qui reste propre et logique, alors tant mieux.

Reply

Sujets relatifs:

Leave a Replay

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