2011-03-01 2 views
1

Je crée un plugin pour joomla et il fonctionne comme prévu sur ma machine Windows 7 locale avec WAMP. Mais quand je charge le plug-in dans le serveur de production (Debian), je reçois cet avertissement (pas toujours):Joomla Plugin Avertissement sur le serveur de production - "Impossible de modifier les informations d'en-tête"

Warning: Cannot modify header information - headers already sent by (output started at /httpdocs/plugins/system/fiuser.php:1) in /httpdocs/plugins/system/jat3/core/parameter.php on line 73 

J'ai essayé googler, mais il n'a pas m'a aidé à résoudre le problème en fait.

<?php 

defined('_JEXEC') or die('Restricted Access'); 

class plgSystemFiUser extends JPlugin { 

    // Some functions 

} 

Je reçois cet avertissement chaque fois que je supprime les données de navigation à partir du navigateur, puis le problème persiste jusqu'à ce que je ferme le navigateur ou aller à un autre site.

Contenu de la ligne 73, parameter.php:

setcookie ($this->template.'_tpl', $this->template, $exp, '/'); 

Je trouve qu'il est difficile de déboguer ce problème, comme je ne suis pas trop expérimenté avec Joomla et PHP, de sorte que toute aide est appréciée une lot.

+0

'sortie a commencé à la ligne de fiuser.php 1' - UTF-8 BOM – mario

Répondre

0

Retirez la balise de fermeture?> À la fin de vos fichiers PHP. Cela ne sert à rien car l'interpréteur PHP sait que la fin de fichier signifie aussi la fin de PHP. Si vous le supprimez, tous les caractères vides ajoutés par votre éditeur n'auront aucun effet sur la sortie générée et n'empêcheront donc pas l'envoi d'en-têtes HTTP supplémentaires.

tour output_buffering mise sur php.ini à supprimer définitivement cette erreur

+0

Tous mes fichiers sont sans la balise de fermeture. Quoi qu'il en soit, demain je vais essayer de changer le paramètre output_buffering et vous faire connaître le résultat. Merci d'être patient. – jithujose

+0

Merci @Manish Trivedi La définition de output_buffering = 4096 dans le fichier php.ini m'a aidé à résoudre le problème. – jithujose

0

Il y a un conflit de la méthode en-tête(), jetez un oeil à rincer le tampon de sortie

PHP.net Output Buffer methods

+0

Où dois-je appeler ces fonctions exactement? Si c'est possible, je ne veux pas toucher au framework JAT3. – jithujose

+0

À quoi correspond la ligne 1 de votre script fiuser? –

Questions connexes