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 :

Afficher les msg au fur et a mesure de l'execution du script dans un explorateur web


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Afficher les msg au fur et a mesure de l'execution du script dans un explorateur web
    Bonjour,

    J'ai un script PHP qui exécute différents tests et opérations diverse en boucle sur une liste d'IP.

    Suivant le succès du traitement, j'ai un message qui s'affiche à l'écran (un echo).

    Lorsque j'utilise ce script en ligne de commande, je vois ces message s'afficher au fur et à mesure.

    A partir d'un explorer, c'est autre chose, j'ai rien qui s'affiche. Normal car le serveur PHP envoie au client ce qu'il a afficher une fois le traitement du script PHP terminé.

    Dans ce cas j'aimerai savoir s'il existe un moyen ou une astuce pour visualiser ce genre d'information au fur et a mesure ?

    merci d'avance,

    Arnaud

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Dans ce cas, je suppose qu'il faut passer par des choses asynchrones.
    Ce genre de chose, ça te plait ?
    http://gael-donat.developpez.com/web/intro-ajax/

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    oui j'avais pensé à AJAX, mais avec les exemples appliqués je ne vois pas comment faire pour réalisé mon projet.

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    j'ai réalisé quelque essaie a partir de la page que tu m'as communiqué (III-A. Interaction avec le serveur : AJAX + PHP)

    J'ai fais en sorte qu'à l'ouverture de la page, j'ai les informations afficher dans la messagebox.

    J'aimerai avoir la même chose mais dans une div par exemple.

    Mais je ne sais comment faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    function ajax()
    {
        var xhr=null;
     
        if (window.XMLHttpRequest) { 
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) 
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { alert_ajax(xhr); };
     
        //on appelle le fichier reponse.txt
        xhr.open("GET", "reponse.php", true);
        xhr.send(null);
    }
     
    function alert_ajax(xhr)
    {
    	var docXML= xhr.responseXML;
    	var items = docXML.getElementsByTagName("donnee")
    	//on fait juste une boucle sur chaque element "donnee" trouvé
    	for (i=0;i<items.length;i++)
    	{
    		alert (items.item(i).firstChild.data);
    	}
    }

  5. #5
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Heu, c'est surtout parce que le navigateur et/ou le serveur temporise l'affichage et attend d'avoir assez d'informations à afficher avant de le faire.
    Tu peux forcer l'affichage avec la fonction flush().

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    ok !

    par exemple si j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(1)
      {
        parser_config();
        parser_fichier();
        flush();
      }
    cela va t'il fonctionner ? j'ai fais un test et j'ai rien qui s'affiche progressivement.

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Selon une contribution sur le site de php.net :

    we had problems with flushing data to the browser. a simple call to ob_flush() or flush() would not work. We found that repeatly calling theses fuctions did work however.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    flush();
    ob_flush();
    flush();
    ob_flush();
    flush();
    ob_flush();
    ?>

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

Discussions similaires

  1. Effacer les sessions au fur et a mesure
    Par Sylvain245 dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2010, 14h45
  2. Réponses: 1
    Dernier message: 08/02/2010, 09h19
  3. Réponses: 15
    Dernier message: 07/06/2009, 15h11
  4. Macro pour ajouter les bordures au fur et a mesure
    Par Raiga dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2007, 08h21
  5. Réponses: 4
    Dernier message: 13/01/2007, 23h57

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