OVH Community, votre nouvel espace communautaire.

Problème PHP Session et header


actonis
12/11/2007, 18h03
Ce message d’erreur indique que vous tenter d’écrire des entêtes HTML, alors que le corps de la page a déjà été enrichi.
En plus clair :
Votre script php a généré par exemple
Echo ‘ bonjour,’
Et ensuite dans votre script apparaît une ligne du genre

Header (‘une entête….’)

D’une manière générale il faut éviter ce genre de chose (pour des raisons de performances) mais ce n’est pas rédhibitoire.
Premièrement, faite phpinfo() et vérifier le paramètre output_buffering, il est certainement à off
Il faut le modifier (dans php.ini) il lui attribuer une valeur 1024, 2048 ou 4096 voire on
Il faut aussi penser à redémarrer apache.

Cela veut dire, ( par exemple 4096), que vous enregistrer dans un BUFFER pour un maximum 4096 octets de code de votre page, donc qui ne sont pas encore envoyé vers la sortie standard.
Tant que votre script écrit dans le BUFFER vous pouvez rajouter des entêtes par la commande header. Ensuite le BUFFER envoi en bloc la page vers le navigateur

Evidement, tout ceci n’est valable que si vous avez la maîtrise du php.ini. dans le cas des hébergements mutualisés il n’est pas possible de modifier ce paramètre…
actonis.fr

mstef
06/11/2007, 21h43
Pas vraiment de quoi avoir honte!
J'utilise les forums et les tutoriels php pour faire quelques pages sur mon site, sans formation ( comme beaucoup) et sans prétention. Cette discussion m'a été très utile : je voulais faire une page de connexion membre, j'ai utilisé cette page :http://www.l ephpfacile.com/howto/10-un-espace-membre mais ça ne marchait pas , j'obtenais les mêmes messages que ceux cités par lefevre.
Grâce à ce forum, j'ai compris ce qui ne fonctionnait pas, ce sont les espaces avant A+
mstef

Lefevre
29/09/2006, 14h33
En effet c'est bien cela, merci.

En tout cas ça à l'air, je vais m'occuper de voir si ça règle bien le problème sur toutes les pages.
EDIT : c'est bon je n'ai plus du tout ce problème, c'etait donc bien cette affreuse erreur de débutant

Et puis bon maintenant je vais me cacher loin dans un trou parce que là j'ai honte de voir que c'etait aussi bête.

Abazada
29/09/2006, 13h36
Bonjour,
Un grand classique
La solution est indiquée dans le message d'erreur:
headers already sent
Cela veut dire que tu a déjà envoyé/écrit quelque chose
avant ta commande session_start ou header.
Ce quelque-chose peut être un simple espace ou un retour-chariot...
Regarde ton source de plus près
Abazada

Lefevre
29/09/2006, 12h57
Bonjour,

j'utilise sur certaines pages de mon site du php, et je rencontre certains problèmes.

En effet j'utilise sur une partie de mon site des variables de session, et sur mes pages les utilisant, j'ai les messages d'erreurs suivants :


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home.2/ecoact/www/test/outil/outil_connection.php:6) in /home.2/ecoact/www/test/outil/outil_connection.php on line 7

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home.2/ecoact/www/test/outil/outil_connection.php:6) in /home.2/ecoact/www/test/outil/outil_connection.php on line 7

(mon code php utilise session_start(); et $_SESSION["membre"] = TRUE;
$_SESSION["membreid"] = $enreg["entreprise"]; )

De plus j'utilise également des redirections avec le code :
header("Location: index.php");
et j'ai alors le droit au message :
Warning: Cannot modify header information - headers already sent by (output started at /home.2/ecoact/www/test/outil/outil_connection.php:6) in /home.2/ecoact/www/test/outil/outil_connection.php on line 26



J'aimerais donc savoir si ces erreurs surviennent parce qu'il existe une specificité des servers OVH qui empechent le bon fonctionnement de ces fonction, ou bien si j'aurais fait une erreur. (PS : les pages concernées fonctionnent très bien sur mon ordinateur en local avec Easyphp)