Aller au contenu

session_start & header


Sujets conseillés

Posté (modifié)

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
Posté

Quel encodage utilises-tu pour créer tes pages ? Ca peut éventuellement venir de là.

Sinon, as-tu le même souci sur une page vierge ? (Juste le session_start ?)

Et sinon, oui, avant de cliquer, je me suis dit ce que tu penses ;)

Posté

J'utilise notepad++ avec une page encodée en utf-8

Oui, j'ai le même souci avec la page blanche :s

Posté

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

  • 2 semaines plus tard...
Posté

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

Posté
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 ??

Veuillez vous connecter pour commenter

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



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