Aller au contenu

session_start & header


Gibou

Sujets conseillés

Bonjour,

Je sais, avant même de cliquer sur ce topic, vous vous êtes dits "encore un qui ne sait pas qu'il ne faut pas faire d'envoi type echo, print ou laisser un espace ou une ligne blanche avant le session_start()

Que nenni !

Voici mon code de la page index.php:

<?php session_start();
session_regenerate_id();
ob_start(); // enclanchement de la tamporisation de sortie (mise en cache)
require_once("api/main.php");
$main = new Main();
ob_end_clean(); // libération de la mémoire tampon
?>
... bla bla bla html + php

Et voici les messages d'erreurs (oui en plus, j'ai la chance d'en avoir plusieurs :cool: )

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Common\sources\Sites\wedus\newsite\index.php:1) in C:\Common\sources\Sites\wedus\newsite\index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Common\sources\Sites\wedus\newsite\index.php:1) in C:\Common\sources\Sites\wedus\newsite\index.php on line 1

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in C:\Common\sources\Sites\wedus\newsite\index.php on line 2

Alors, pour préciser, le serveur est une solution wamp (WAMP5 version 1.7.3 soit, la dernière sortie. J'avais le même problème avec la 1.7.2 et j'espérais que ce problème allait se résoudre en passant à la nouvelle version mais non). Je travaille en local comme l'indiquent les chemins absolus.

le session_regenerate_id() est là pour éviter les url du type index.php?PHPSESSID=blabloubli

le ob_start() et ob_end_clean() sont là car parmis les classes de mon API, il y a des espaces et certains headers foiraient lors de leurs appels.

Ce qui est "amusant" c'est que j'ai développé une API php cet été sans ce système de cache avec autant d'headers dans l'api et je n'ai eu aucun problème jusqu'à hier soir ... groumf.

Merci de m'éclairer de vos lumières.

Cordialement,

Modifié par Gibou
Lien vers le commentaire
Partager sur d’autres sites

C'est bon,

Je viens de visualiser le code avec l'éditeur hexadécimal de notepad++ et il y avait trois caractères malsains cachés en début de code.

Groumf

Bonne soirée

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

En plus de la suppression des caractères inutiles, il a fallu que j'active l'"output buffering" dans la configuration PHP de wamp. J'avais le même problème maintenant ca fonctionne correctement (en tout cas plus de warning). Bonne chance

Lien vers le commentaire
Partager sur d’autres sites

En plus de la suppression des caractères inutiles, il a fallu que j'active l'"output buffering" dans la configuration PHP de wamp. J'avais le même problème maintenant ca fonctionne correctement (en tout cas plus de warning). Bonne chance

Et cela n'a aucune conséquence au niveau des performance ??

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...