Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Débutant en PHP, j'utilise le dernier framework de Zend. J'ai cependant un souci lorsque je souhaite tester mes services (methodes de classes) que j'appelle depuis une interface en Flex (AMFPHP).
L'erreur c'est : "session has already been started by session.auto-start or session_start()".
> Comment faire depuis un appel d'un service pour ne démarrer qu'une seule fois une session ??
> Comment utiliser un bootstrap pour qu'il ne soit appelé qu'une fois par session ??
Merci beaucoup pour votre aide précieuse,
Anthony
Hors ligne
Probablement une classique fuite d'en-tête, il doit y avoir de l'affichage avant le démarrage de la session.
Pour rappel : la session démarre si on appelle Zend_Session::start(), ou si un namespace de session est crée (new Zend_Session_Namespace()) alors que l'option "strict" de Zend_Session est sur off ( attention, des composants de ZF comme Zend_Auth, ou Zend_Controller_Action_Helper_Flashmessenger utilisent des namespaces de session)
Hors ligne
enlève tout le ?> que tu peux avoir en fin de fichier php
si tu as un ?> en fin de fichier il est très facile sans s'en apercevoir d'y ajouter des caractères invisible comme \n
lorsque tu fais un include d'un tel fichier les caractès en question sont envoyé au client et tu obtient ce message
c'est vrai aussi dans le code j'ai vu hier un code php ainsi fait
<?php ....(du code php).... ?> <?php ....(encore du code)...
dans ce cas il y a un \n entre ?> et <?php Or tout ce qui est en dehors de <?php ?> est envoyé au client c'est exactement comme si on avait fait un echo("\n");
le protocole http implique que tous les headers doivent être envoyé avec n'importe quelle donnée. et les session utilisent les headers http
A+JYT
Hors ligne
Pages: 1