IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de compatibilité ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut Problème de compatibilité ?
    Bonjour,

    J'ai créé un site internet avec la version 5.3 de PHP avec WampServer. J'y ai modifié l'en-tête (avec des redirection "header()" ou des cookie (setcookie) au milieu des pages. Pas avant tout code HTML. Et cela fonctionnait très bien.

    J'ai ensuite changé de serveur (qui utilise la version 5.2 de PHP) et là il me mettait chaque fois cette erreur lorsque je faisais une redirection ou un cookie au milieu de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at .....) in ..... on line ..
    En les déclarant dans l'en-tête il n'y avait plus de problème.

    J'aimerais juste avoir la confirmation si c'est depuis la version 5.3 que l'on n'est plus obligé de déclaré les redirections les cookie dans l'en-tête. Ou est-ce un rapport avec le serveur ?

    Merci beaucoup d'avance...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La necessité de specifier les redirections, sessions et cookie dans les en-têtes HTTP est due au fonctionnement de HTTP ; cela n'est pas dépendant de la version de PHP.

    Il est impossible de faire une redirection HTTP après l'envoi des en-tête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Ah oui, bien sûr, c'est vrai. Merci.

    Mais alors pourquoi est-ce que ça fonctionne lorsque j'écris ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    // imprime
    echo 'I love PHP';
     
    // redirection
    header("Location: http://www.site.ext/");
     
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce code ne fonctionne pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Ben chez moi si. J'utilise WampServer. Je ne comprend pas pourquoi ! J'aimerais bien une explication.

    Lorsque je change de serveur, ça ne fonctionne effectivement plus.

    Avec le même navigateur, pourtant !!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu dois avoir output_buffering activé.
    C'est cependant une mauvaise idée de se baser sur ce mécanisme car d'une part ce n'est pas maitrisé, d'autre part tu es dependant de la configuration du servuer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Ok, et comment peut-on désactiver output_buffering ?

    Pour que je puisse voir si cela vient bien de ça ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    c'est dans php.ini ?

    Dans php.ini, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ; output_buffering
    ;   Default Value: Off
    ;   Development Value: 4096
    ;   Production Value: 4096

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    J'ai modifié cette variable en "off" dans php.ini, mais lorsque je fais un phpinfo(), j'ai toujours 1 sous "output_buffering" :

    Est-ce correct ?

    PS : Le code montré précédemment fonctionne toujours...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Bon, c'est p'têtre normal, si je redémarre pas le serveur ! ^^

    Alors effectivement, cette fois-ci, ça me met l'erreur. Merci beaucoup sabotage !! Tu connais à voir vraiment bien le PHP !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 72
    Par défaut
    Mais en fait que ce passe-t-il exactement en activant la bufferisation de sortie ? Ais-je bien comprit ? Cela met en mémoire cache toutes les données envoyées à part setcookie() et header() ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compatibilité Windows XP vers 98
    Par chleuh dans le forum EDI
    Réponses: 5
    Dernier message: 22/08/2005, 12h06
  2. problème de compatibilité
    Par DERGUECHE dans le forum C++
    Réponses: 1
    Dernier message: 11/03/2005, 15h07
  3. Problèmes de compatibilité entre sdk 9.0c et geforce 2/4
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 01/10/2004, 15h22
  4. problème de compatibilité de .lib
    Par projet_chu dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 18h05
  5. help!! problème de compatibilité ascendante
    Par valfredr dans le forum XMLRAD
    Réponses: 5
    Dernier message: 16/06/2003, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo