rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[PHP][HEADER] Gros Probleme

keys69, le mercredi 21 mai 2008 à 17:23:33
Bonjour a tous

J'ai un probleme tres bizar concernant le forcage d'un telechargement automatique.
Mon probleme est le suivant : Je desire apres qu'un utilisateur ai clique sur un bouton submit, lancer automatiquement un telechargement de fichier dont le nom varie en fonction des choix qu'a fait l'utilisateur avant de cliquer sur ce bouton submit ( le fichier serait cree auparavant )

Apres m'etre renseigne j'ai donc insere les headers avant toute ligne d'html :

if(isset($_POST['bouton_submit'])){ // si on a clique sur le bouton submit
	$nom_fichier=$_SESSION['fichier'];
	header("Content-type: application/force-download");
	header("Content-Disposition:attachment; filename=' ".$nom_fichier." ' ");
	readfile('C:/wamp/www/login/project/Files/'.$nom_fichier.'); // je travaille en local
}


Voila ce qui est etrange c'est que quand je clique sur ce fameux bouton j'ai bien une fenetre qui s'ouvre me demandant si je veux telecharger le fichier qui porte le bon nom. Cependant une fois telecharge et ouvert je n'obtient pas du tout le contenu du vrai fichier mais le code html de la page d'ou je viens ( en l'occurence celle qui contient le bouton submit ).
En fait j'ai l'impression que readfile ne va pas chercher le fichier du tout malgres que mon chemin soit exacte ( je n'ai aucune erreur suite a l'execution du code ).

Apres avoir consulte bon nombre de topic j'ai essaye en remplacant le header("Content-type: application/force-download"); , en essayant divers chemin dans mon readfile. De plus, je n'ai aucune ligne blanche dans le fichier telecharge avant tout code html...

Bref je ne trouve rien sur google comparable a mon probleme, si quelqu'un peut m'aider ce serait avec plus grande joie :)

Merci bcp d'avance

ps : dsl pour les accents je bosses sur qwerty :p
Configuration: Windows XP
Firefox 2.0.0.14


EDIT : En fait le fichier telecharger contient bien le contenu de mon fichier mais il concatene ensuite le code HTML de la page d'ou je viens...vraiment bizar :s
Répondre à keys69  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vlmath, le mercredi 21 mai 2008 à 18:19:03
Salut,

C'est normal que le nom du fichier soit correcte, puisque c'est le premier header qui donne le nom du fichier, qui n'a pas de lien avec le nom du fichier sur le serveur.

Juste deux remarques (et peut-être que ça va marcher ... :D) :

- Avec le " (double quot), les variables sont "executées" : ainsi, tu ne dois pas faire le ' ".$variable." '
- Il y a un problème de ' dans le readfile

Code avec les deux remarques :
if(isset($_POST['bouton_submit'])){ // si on a clique sur le bouton submit
	$nom_fichier=$_SESSION['fichier'];
	header("Content-type: application/force-download");
	header("Content-Disposition:attachment; filename='$nom_fichier' ");
	readfile('C:/wamp/www/login/project/Files/'.$nom_fichier); // je travaille en local
}


Je pense que tu y a pensé, mais t'as bien mis l'extension du fichier dans la variable ?

@Bientôt
Répondre à vlmath

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
keys69, le mercredi 21 mai 2008 à 19:21:14
Salut, merci davoir pris un peu de temps pour essayer de m'aider mais ce n'est pas un probleme de quote, d'autant plus qu'en remplacant ce que tu ma dis j'obtient un nom de fichier de la forme : ' nom de fichier ' ( avec des quotes autour)
Sinon oui j'inserais bien l'extension.

Voici un autre exemple de mon probleme avec un fichier fixe test.txt qui contient le texte suivant : abcdef

Voici mon code :

<?php
session_start(); 
if(isset($_POST['bouton_submit'])){ // si on appuie sur le bouton submit
	header("Content-type: application/force-download");
        header("Content-Disposition:attachment; filename=test.txt ");
        readfile($_SERVER['DOCUMENT_ROOT'].'login/project/Files/test.txt'); // prend la racine du serveur
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">

	<head> balises
        </head>
         <body>

blablalalbalblabla

        </body>

</html>



Et donc quand jouvre mon fichier telecharger ca me donne ceci :


abcdef
<html xmlns="http://www.w3.org/1999/xhtml">

<head> balises
</head>
<body>

blablalalbalblabla

</body>

</html>



Bref ca concatene quoi en prenant en inserant le contenu du fichier en premier....
Répondre à keys69

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
keys69, le mercredi 21 mai 2008 à 20:48:39
Vous n'avez pas d'idee ? J'ai vraiment beau chercher je trouve rien :(
Répondre à keys69

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pepe cyril, le mercredi 21 mai 2008 à 23:01:06
Je crois que si tu met que ça, ça devrait forcer le téléchargement:
	header("Content-Disposition:attachment; filename=' ".$nom_fichier." ' ");


A la fin de ta condition il faut mettre un:
exit();

pour ne pas avoir la suite de la page html

Pour voir si le fichier existe bien, tu fait un:
echo 'C:/wamp/www/login/project/Files/'.$nom_fichier;

et tu regarde si il existe.


Enfin, je sais pas comment est défini ton $_SESSION['fichier'], mais suivant comme tu l'a fait, si l'utilisateur a moyen de changer cette variable (par un formulaire par ex), sache qu'il peut accéder à tout ton disque dur... Fais attention
Répondre à pepe cyril

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 keys69, le mercredi 21 mai 2008 à 23:45:04
Ben ecoute pepe cyril tu viens de resoudre ce qui depuis 2 jours me causes des miseres je te remercies vraiment vraiment bcp :) !!

Le probleme etait en effet un simple exit() a rajouter, je pouvais pas l'inventer lol

Niveau securite la variable de session ne peut pas etre modifier par lutilisateur donc ca ne devrai pas poser de probleme :)

Merci bcp mec !
Répondre à keys69
[PHP] Problème RSS et Tableau (Résolu)Bonjour, Je voulais créer un fil RSS sur mon site, mais j'ai un problème lorsque l'ont s'y inscrit, il me marque problème de chargement. Voilà le code source de ma page rsstuto.php : www.commentcamarche.net/forum/affich-3333368-php-probleme-rss-et-tableau
Image en Php (Résolu)bon, je comprends pas, ça marche pas... J'ai créé un fichier image.php3 qui contient ça : www.commentcamarche.net/forum/affich-51546-image-en-php
Comment mettre un script (Résolu)Bonjour, comment fait on pour mettre un script sur une page web comme celui la (si s'est possible bien sur je début dans la création de sit web): http://www.comscripts.com/scripts/php.headless-horsemp3.93.html j'ai mit mon e-mail je lais... www.commentcamarche.net/forum/affich-5546749-comment-mettre-un-script
[PHP] Headers already sent by.....Lorsque vous utilisez une fonction Php qui manipule les en-têtes http comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où... www.commentcamarche.net/faq/sujet-1916-php-headers-already-sent-by
[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail
[PHP] Rediriger sur une autre page (redirection)N'import quel webmaster réalise un jour qu'un de ses fichiers possède un nom qui ne convient pas ou que l'arborescence des fichiers doit être modifiée. Cependant, s'il est relativement facile de changer les liens sur son site, il est beaucoup plus... www.commentcamarche.net/faq/sujet-878-php-rediriger-sur-une-autre-page-redirection
Probleme affichage photo de Mysql (Résolu)Bonjour, Je sui en train de developper un site web et je rencontre un soucis... Voila, je dois afficher des images en provenance de la base de donnees. J'ai crée ma page permettant de les afficher. En voici le code : ///////// www.commentcamarche.net/forum/affich-4280498-probleme-affichage-photo-de-mysql
PHP headers already sent (Résolu)Bonjour, Lorsque je tente d'ouvrir une session en PHP, il m'affiche un message "Headers already sent". Pourtant je n'ai pas envoyé de headers avant, ni fait un seul echo ? Une idée ? www.commentcamarche.net/forum/affich-5161041-php-headers-already-sent
[PHP][HEADER] Gros Probleme (Résolu)Bonjour a tous J'ai un probleme tres bizar concernant le forcage d'un telechargement automatique. Mon probleme est le suivant : Je desire apres qu'un utilisateur ai clique sur un bouton submit, lancer automatiquement un telechargement... www.commentcamarche.net/forum/affich-6512533-php-header-gros-probleme
Télécharger PHP EditPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des... www.commentcamarche.net/telecharger/telecharger-62-php-edit
Typhoon Micro Bluetooth Headset(20600)Bluetooth, Sans-fil,Page web du produit:Anglais,Type de batterie:Li-Ion,Poids:18.5,Technologie sans-fil:Bluetooth,Batteries rechargeables,Autonomie:5 h,Portée sans-fil:10 m,Bluetooth,Divers:Standby time: 133 hours/,Casque,Bande passante écouteurs:  www.commentcamarche.net/guide-achat/typhoon-micro-bluetooth-headset-20600-917118-fiche-technique
Logitech Precision PC Gaming HeadsetFilaire, Cable 3.04 m,Bande passante:20-20000 Hz,Divers:Gold Plated Audio Connectors, In-line volume controls,Isolation acoustique:Fermé,Longueur du cable:3.04 m,Sensibilité:58 dB/1mW,Type:Micro-casque (PC),Technologie sans-fil:Filiaire www.commentcamarche.net/guide-achat/logitech-precision-pc-gaming-headset-618156-fiche-technique
Dell Bluetooth Stereo HeadsetBluetooth, Sans-fil,Bande passante écouteurs: ,Divers:This product has been tested and validated on Dell systems to ensure it will work with your computer,Type:Micro-casque (PC / Téléphone mobile),Technologie sans-fil:Bluetooth www.commentcamarche.net/guide-achat/dell-bluetooth-stereo-headset-991830-fiche-technique
PHP - Génération d'images PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut que PHP soit... www.commentcamarche.net/php/phpimg.php3
PHP - Mail et fonctions réseau PHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est... www.commentcamarche.net/php/phpmail.php3
PHP - Introduction PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La syntaxe du langage provient... www.commentcamarche.net/php/phpintro.php3
Toutes les réponses pour « [PHP][HEADER] Gros Probleme »