"session_start" et "header()"
RésoluNy89 -
Voila j'ai fait un script dans lequel session_start et header( )n'est pas au début du script. J'ai des messages d'erreur du style :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 25
Qu'est ce que je peux alors faire pour contourner ce problème. J'ai essayé de lire une solution à ce problème sur un site mais je n'ai rien compris. Si quelqu'un avait une reponse claire ça serait vraiment sympa.
Pour info ,je possède la derniere version de EasyPHP.
Merci d'avance.
- Session_start(): cannot start session when headers already sent
- Warning: session_start(): cannot start session when headers already sent i - Meilleures réponses
- Session cannot be started after headers have already been sent - Meilleures réponses
- One start ✓ - Forum Navigateur
- Application start experience ✓ - Windows 11
- Mail.yahoo.fr ouverture session - Guide
- Ouverture de session gmail - Guide
- Teamviewer code de session expiré ✓ - Forum Windows XP
40 réponses
- 1
- 2
Le souci principal est l’erreur Cannot send session cookie et Cannot modify header information lorsque session_start() est exécuté après l’envoi de contenu. Des solutions courantes consistent à placer session_start() et les appels header() au tout début du script et à éviter toute sortie, même un espace ou un saut de ligne antérieur. D’autres causes évoquées incluent des caractères invisibles ou l’encodage du fichier (UTF-8 avec BOM versus ANSI), ou encore des éditeurs qui ajoutent des caractères avant le diagnostic. En pratique, certains utilisateurs constatent que créer ou déplacer des dossiers de sessions, ou enregistrer les fichiers en ANSI plutôt qu’en UTF-8, peut résoudre le problème sans modifier le code existant.
- 1
- 2
http://www.lephpfacile.com/howto/index.php?p=10
Plus particulirement le script du fichier "index.php" tu vera qu'il y a un "session_start" au milieu du script. COmment cela se fait ?
Ensuite c'est connexion Sql puis envoi de requête.
Il n'ya là aucun envoi de texte du genre echo ou print etc... Ce sont des opérations qui n'ont pas encore construit la page à envoyer au client.
La génération de texte provoque l'envoi des headers (en-têtes Http), on ne peux plus les retravailler après...
Je me suis fait piéger ya deux jours, car j'avais cette erreur de "headers already sent".
J'ai traîné pendant 15 minutes alors que l'erreur venait de quelques espaces en tout début de page :-)