|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Bonjour,
J'ai un problème assez bizarre d'autant plus que c'est la première fois que ça me fait ça... En fait j'ai une variable "$nom_fichier" que je définie à une session. Seulement, ça me modifie le contenu de $nom_fichier juste après le session_start()... Code :
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
||
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Erreur de débutant. Mettre session_start() tout en haut de page...
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 701 ![]() |
Salut
Code :
Chose très fortement déconseillée. Cà à en tout l'air car la variable $nom_fichier (pour ce code) à été écrasée juste après le démarrage de la session, ce que provoque justement cette directive. Aussi, n'a tu pas eu l'erreur très répandue "Headers already sent by ..." du fait d'avoir fait un echo avant de démarrer la session ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Non, je n'ai pas registre_globals on
ensuite si je n'ai pas eu de message à cause de echo avant session_start() c'est que j'utilise ob_start() / ob_end_flush() (bufferisation de sortie) ce que fait que la page est envoyée en une fois. Justement, ça compresse et evite d'avoir des erreurs de type header already sent.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 701 ![]() |
Citation:
Jamais $nom_fichier n'aurais dû changé de valeur, pas comme ça d'une ligne à l'autre, sinon d'être écrasé par quelque chose d'autre. Il y a forcément une explication, et ce n'est pas le fait de déplacer le session_start() si le register_global est bien à Off. Si tu remets comme c'était, donc avec l'erreur, ce phénomène cacherait quelque chose d'autre à mon sens, pas possible. Citation:
Mais à titre personnel, je préfère 100 fois avoir une erreur dû à l'envoie d'une entête trop top ou lié à une erreur, que de ne rien voir, rien savoir, au moins en phase de développement, modifs, améliorations, etc ... Après, en production, pourquoi pas.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Je t'assure que si, mon code était tel quel et mon register_globals est bien à OFF.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#7 | |||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 701 ![]() |
Citation:
Ne trouve tu pas anormal que cette variable change de valeur alors que le seul et unique code qu'il y a entre les 2 echo est session_start() ? Pour ma part il y a un truc pas clair. C'est peut être lié à la bufferisation et de l'erreur que provoquerait le 1er echo, va savoir, mais ça me parait troublant quand même. Bon, c'est résolu, certes. Mais un essai comme ci-dessous, donc en revenant un peu comme au départ ne serait pas si inutile (au moins avoir une explication) : Test 1 : (sans provoquer d'erreur headers already send ...) Code :
Code :
Maintenant, reste à voir si tu le temps de prospecter. D'ailleurs, faire un ob_start() / ob_end_flush() ne devrait pas empêcher de voir cette erreur du echo placer avant le session_start(). Personnellement ça m'arrive d'en faire autant quand je débug, et l'erreur je l'ai quand même si tel est le cas. Je dirais plutôt que c'est le fait de mettre la directive output_buffering à On qui empêcherait d'avoir ce genre d'erreur, non ? Je ne sais plus trop, je ne bidouille pas ça tout le temps. Aussi, as tu bien le session.auto_start à 0 ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||||
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Citation:
Citation:
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com