#1 Le 02/01/2008, à 12:03
- globilux
Génréation de flux XML et session php
bonjour,
j'ai fait une méthode qui est censé me renvoyé un flux xml
public function copy_licence()
{
$zip=explode("/",$this->file);
if($this->type=="eval")
{
$created_folder=$this->folder.'/StormShield-Evaluation-Licences/';
}
else
{
$created_folder=$this->folder.'/StormShield-Licences/';
}
if(!is_dir($this->folder))
{
exec('mkdir '.$this->folder);
}
exec('cp '.$this->file.' '.$this->folder.'/'.$zip[10]); // <-- copie le ficher .zip dans le répetoire
if(is_writable($this->folder))
{
if(!is_dir($this->folder.'/StormShield-Licences/')) // <-- créer un dossier (effacer après) o๠seront stockés les licences
{
exec('mkdir '.$created_folder);
exec('chmod -R 777 '.$created_folder);
}
}
else if(!is_writable($this->folder))
{
die("<div class=\"error\">Veuillez contacter l'administrateur système avec le code 2048</div");
}
exec('unzip -q -o -d '.$this->folder.' '.$this->folder.'/'.$zip[10]);
exec('cp '.$created_folder.'/product.lic '.$this->folder); // <-- copie des fichiers
exec('cp '.$created_folder.'/console.lic '.$this->folder);
exec('rm -fr '.$created_folder); // <-- nettoyage (à coup de karcher)
exec('rm -fr '.$this->folder.'/'.$zip[10]);
if(is_file($this->folder.'/product.lic') && is_file($this->folder.'/console.lic'))
{
header("Content-Type: text/xml");
echo '<past>good</past>';
}
mais voila j'ai une session en cours
donc j'ai une erreure php
Warning: Cannot modify header information - headers already sent by (output started at /srv/sites
/extranet/skyline/marwan-coding-tmp/header.php:12) in /srv/sites/extranet/skyline/marwan-coding-tmp
/Environment.php on line 127
comment puis je faire ?
Hors ligne
#2 Le 03/01/2008, à 12:24
- alexduf
Re : Génréation de flux XML et session php
je suis pas un expert en php, ceci dit le problème me semble compréhensible.
Visiblement la réponse a déjà commencé a être envoyée, mais tu essaie de modifier l'en-tête de la réponse.
Je ne connais pas tes compétences à propos du protocole HTTP, donc je me permet d'expliquer.
Le protocole HTTP fonctionne sur le principe suivant : le client envoi une requête au serveur (constitué d'un en-tête uniquement). Le serveur reçoit la requête, la traite et retourne un en-tête plus un corps (donc le flux xml dans ton cas) de message.
L'en-tête de la réponse contient plusieurs choses dont la taille du corps et son type.
Et c'est là que l'erreur intervient, il est possible que tu demande de changer le type de réponse (passer du html par défaut au xml) alors que l'en-tête de la réponse a déjà été envoyé au client !
il faut donc simplement repérer la ligne fautive et la faire intervenir plus tà´t, ou alors (je ne connais pas la faisabilité en php) buffuriser la réponse avant de l'envoyer.
[edit] en lisant un peu le code j'ai trouvé ca :
la ligne en question est
header("Content-Type: text/xml");
mais visiblement dans le fichier header.php à la ligne 12, la réponse a déjà été envoyée (message d'erreur)
[/edit]
Dernière modification par alexduf (Le 03/01/2008, à 12:27)
Hors ligne
#3 Le 03/01/2008, à 14:28
- globilux
Re : Génréation de flux XML et session php
sans vouloir être méchant, je sais lire
Hors ligne
#4 Le 04/01/2008, à 13:26
- alexduf
Re : Génréation de flux XML et session php
ok ok
bon courage alors
Hors ligne
#5 Le 04/01/2008, à 13:40
- globilux
Re : Génréation de flux XML et session php
ok ok
bon courage alors
merci
finallement j'ai résolu le problème
Hors ligne
#6 Le 29/06/2008, à 14:57
- Crazyfaboo
Re : Génréation de flux XML et session php
Et comment tu as fait stp ?
Hors ligne