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

Apache Discussion :

affichage entete http à la place de ma page web (php)


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut affichage entete http à la place de ma page web (php)
    Bonjour à tous,

    Voici mon problème, j'essaie d'afficher une page php avec un grand nombre de données sous forme de tableau, mais à la place d'avoir ma page php, j'ai le message suivant qui s'affiche dans ma page php

    HTTP/1.1 200 OK Date: Wed, 27 Feb 2008 15:37:50 GMT Server: Apache/2.2.3 (Unix) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_apreq2-20051231/2.5.7 mod_perl/2.0.2 Perl/v5.8.7 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Connection: close Content-Type: text/html

    Je pense que c'est le serveur apache qui se protège en ne voulant pas transférer une page "trop grosse".
    Je pense que ça doit être un paramètre dans httpd.conf ou php.ini à changer, j'en ai augmenté pas mal, mais pas de changement.

    Suis je sur la bonne piste ou est ce autre chose?

    merci de m'avoir lu

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu reviens en arrière sur tes modifs, ça corrige le pb ?

    Pour vraiment savoir, je pense qu'il faut aller regarder la requête HTTP complète échangée entre le navigateur et le serveur. Dans ton cas, j'ai l'impression que c'est un truc du genre "tentative d'envoi ou d'ajout d'en-tête HTTP alors que des données ont déjà été envoyées au client". Tu fais des traitements PHP avant la balise <html> de ta page ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut impossible d'afficher la page
    Bonjour,

    C'est pas une question de revenir en arrière, ma page affiche le résultat d'une table de BDD.
    Si je limite le nombre de lignes de résultat, ma page s'affiche, si j'augmente le nombre de ligne de données à afficher, j'ai l'erreur citée dans mon premier message.

    J'ajoute quelques informations supplémentaires :
    Dans mon application, si j'ai une page longue à afficher, en activant une option, j'ai la possibilité d'afficher une progress bar pour faire patienter l'utilisateur et pendant ce temps j'envoie la page en ouvrant un socket et en envoyant une requête http (c'est une sauce ajax).

    Bref, si je désactive cette option, j'ai une page blanche sous firefox et une sous internet explorer le message d'erreur : impossible d'afficher la page sous IE.
    Je pense que c'est plutôt de ce côté qu'il faut creuser.

    Merci d'avance.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu veux dire que le temps d'exécution de la page est trop long ? Y a des paramètres PHP et Apache pour autoriser des attentes plus longues mais le pb c'est que le navigateur a son propre timeout : si tu dis à Apache d'attendre 10 minutes le résultat de la requête, le navigateur, lui, ne va pas attendre 10 minutes. Pour faire durer, il faut alimenter régulièrement le navigateur en données, d'où le truc en Ajax. A tout prendre, cette solution me paraît la plus intéressante.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut précisions
    Je reprends :
    1- sans ajax : même si je paramètre le timeout (php) de façon illimité
    j'ai une page blanche sous firefox et impossible d'afficher la page sous IE

    2- si j'utilise ajax pour alimenter régulièrement le navigateur, j'ai le message "d'erreur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HTTP/1.1 200 OK Date: Wed, 27 Feb 2008 15:37:50 GMT Server: Apache/2.2.3 (Unix) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_apreq2-20051231/2.5.7 mod_perl/2.0.2 Perl/v5.8.7 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Connection: close Content-Type: text/html
    Ca a déjà du arriver à quelqu'un cette histoire quand même?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Vu la trace Ajax, à mon avis, le buffering est activé, ce qui fait que ton navigateur ne reçoit pas de données au fur et à mesure (le serveur attend d'avoir généré entièrement la page avant de l'envoyer au client) et donc il peut couper la connexion s'il attend trop longtemps. Essaie de désactiver le buffering ou appelle des flush() régulièrement dans ton code pour envoyer des données au navigateur et l'aider à patienter.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    @ _Mac_
    avant d'utiliser ajax pour communiquer et garder le contact durant le traitement long :

    je m'assure d'avoir fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set_Time_Limit(0); // dure d'execution infinie
    ob_end_flush();
    session_write_close(); // pour ne pas avoir 2 fois la meme session
    flush() ; // force l'envoie du header + la fenetre d'attente
    Maintenant, oublions ajax.
    Pourquoi, même si je dis que je veux une durée d'execution du script infinie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set_Time_Limit(0); // dure d'execution infinie
    J'ai soit une page blanche sous ff, ou impossible de se connecter sous ie

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Y a 2 choses à voir :
    • avoir des en-têtes n'est pas suffisant pour un navigateur pour afficher des choses, il faut du HTML.
    • Ensuite, comme je disais au début, un navigateur a son propre timeout indépendant du serveur : le serveur peut peut-être mettre 10 minutes à renvoyer des trucs tout en maintenant la connexion, mais le client (IE ou FF) n'attendra pas 10 minutes. Si, au bout de 3 ou 5 minutes, il ne reçoit plus de données, le navigateur coupe la connexion. Alors si dans ce laps de temps, seuls les en-têtes ont été renvoyés, FF va afficher une page blanche (contenu vide = page blanche) et IE va afficher une page d'erreur. En tout cas, c'est ce que je comprends.

    Je pense donc qu'il faut que tu t'assures que le navigateur est régulièrement alimenté en code HTML durant le traitement, quitte à ce que ce soit un espace ou un saut de ligne, mais pourvu qu'il reçoive régulièrement des données.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    avec le loglevel à debug, on n'a pas vu le message suivant qui apparait avec le loglevel warn :
    j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Allowed memory size of 16777216 bytes exhausted (tried to allocate 2906298 bytes)
    j'ai pu voir que c'était bien du à ma directive memory_limit (dans php.ini) qui était à 16 (8 par défaut) j'ai augmenté à 32
    16 était vraiment la limite, et c'est pour ça que j'ai mis du temps à trouver, car en comparant sous win, celle ci est à 16 et fonctionne !!!!!!!!

    Je tenais à vous remercier pour votre aide et de m'avoir accordé de votre précieux temps

  10. #10
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Pas mal, fallait le trouver

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

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

Discussions similaires

  1. Affichage du code au lieu de la page web avec Mobile Web Server de Nokia
    Par Caliau dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 01/07/2008, 16h29
  2. Affichage du contenu d une BD en Page Web
    Par Aida dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/12/2007, 23h16
  3. Réponses: 2
    Dernier message: 12/07/2006, 08h44
  4. Réponses: 3
    Dernier message: 27/04/2006, 14h23
  5. Réponses: 2
    Dernier message: 12/02/2006, 18h43

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