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 :

[Système] Message pour attente d'un script shell long en temps


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut [Système] Message pour attente d'un script shell long en temps
    bonjour

    je voudrai afficher un message d'attente pendant l'execution d'un script shell lancer avec la fonction shell_exec

    j'ai crée une page avec "veuillez attendre" et ensuite l'appel au mon scrip shell mais elle s'affiche qu'à la suite du traitement du script ce qui est l'inverse de ce que je souhaite

    merci pour l'aide ou toutes idées precieuse lol

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    si tu écris quelque chose avant le shell_exec, et qu'à la fin du ajoute un bout de javascript qui mets display='none' sur le message d'attente ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    je ne compren pa ce que tu veut dire

    donc peut etre est ce moi qui n'a pas ete claire donc je donne un bout du code theorique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div>
    veuillez patienter
    </div>
    <?
    shell_exec('monsript');
    ?>
    le veuillez patienter s'affiche qu'apres l'execution du script et comme je redirectionne apres je le voi quasiement pas

    comment faire pour afficher puis faire le script en une seule page ou si autre idée

    merci

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    je regarderais pour le faire avec un div aussi.
    sur la page avant l'exec du script, lorsque tu cliques sur ton bouton qui va appeler le second script, juste avant cet appel tu mets l'affichage d'un div, ainsi il restera affiché tant que la seconde page n'aura pas terminé son chargement.

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    bah on peut toujours essayer...


    sinon tu écris une page avec message d'attente, tu fais une iframe hidden qui ne fais qu'exécuter le script... et à la fin il écrit un bout de javascript, qui va rediriger la page parent à l'adresse voulue

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    j'ai deja tester cette solution d'afficher dans la page precedente mais ca marche pas je recuperer une page blanche apres et mem pas l'affichage la 1er fois

    j'avais simplifier le probleme car ma page est legerement plus complexe

    en gros cette page appel des script et quand elle a fini avec un script se rappel pour faire un autre script

    le code simplifer donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div>attent <? echo $nomscript;?><div>
    <? shell_exec('$nomsript');
    echo"<script> window.location('mapage.php');</script>";
    ?>
    la page se rappel avec le script suivant ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    le iframe je pens eque sa peut marcher mais j'ai des question dessus je connais pas trop cette balise

    dans la iframe je met mon shell_excec puis comment je revien sur ma page car je rappel a la fin du script la page d'attente contenant la iframe

  8. #8
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    j'avais pas le contexte exact... et avec les iframes je ne vois pas trop...


    perso, je pense que tu peux plutôt essayer un peu de ajax, et tu te fais une boucle qui appelle les pages contenant seulement les shell_exec...

    ainsi, tu auras l'effet souhaité, ce sera plus rapide, et tu pourras faire des petits effets pour la progression...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    je voi ton idée aurai tu un exemple bout de code stp

    merci encore

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    desole je complique mai je doi lui passer des arguments (a mon scrip) que je recupere en php

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    pourquoi avec les iframes sa ne marcherai pas

    il faut juste dans la iframe appeler la page mere dans sa fenetre, ce n'est pas possible avec la iframe ???

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    j'ai tester avec ajax mai j'ai l'impression qu'il n'attend pa la fin de mon excecution de script et aussi il n'affiche pas le div comportant le veuillez attendre a moins de faire un alert et la il apparait mais alert attend une action utilisateur

    des idées?????

  13. #13
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    il faut que tu aies deja ecrit ton div... ajax le modifieras si besoin

    si tu attends ce soir, je verrais à te faire un exemple

  14. #14
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    chose promise, chose due...

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>pseudo iframe en ajax</title>
    <style type="text/css">
    body {
        text-align: center;
    }
     
    div.iframe {
        text-align: center;
        width: 50%;
        height: 200px;
        margin-top: 20%;
        margin-left: auto;
        margin-right: auto;
        border: 2px;
    }
    </style>
     
    <script type="text/javascript">
    <!--
    var xhr;
     
    function getXhr() {
        if(window.XMLHttpRequest) // Firefox et autres
            xhr = new XMLHttpRequest(); 
        else 
            if(window.ActiveXObject){ // Internet Explorer 
                try {
                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            else { // XMLHttpRequest non supporté par le navigateur 
                alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                xhr = false; 
            } 
    }
     
    function load(url,data) {
        getXhr();
        // On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function() {
            // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
            if (xhr.readyState == 4 && xhr.status == 200) {
                //alert(xhr.responseText);
                document.getElementById("iframe").innerHTML = "fini";
            }
        }
        xhr.open("POST",url,true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(data);
    }
    -->
    </script>
     
    </head>
     
    <body>
     
    <div  id="iframe" class="iframe">
    Veuillez patienter...
    </div>
     
    <a href="javascript:load('http://<?=$_SERVER['SERVER_NAME']?>/temp/phpinfo.php')">cliquez</a>
     
    </body>
    </html>

    enfin, il faudra mettre au propre

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    merci pour l'aide c vraiment sympa

    mais tu as testé ou pas car je sais pas j'avais fait quelque chose de similaire et sa fonctionnait pas

    la différence etait :
    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
     
     
    function load(url,data) {
        getXhr();
        // On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function() {
            // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
            if (xhr.readyState == 4 && xhr.status == 200) {
     
                 //rien a ce niveau
            }
        }
        xhr.open("POST",url,true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(data);
    }
     
     
     
    <body>
    <div  id="wait">
    Veuillez patienter...
    </div>
    <? echo "<script>load( /*les parametres*/);</script>";?>
    </body>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    coté lien php
    <?
    shell_exec('script.sh agr1');
    ?>
    voila ce que j'ai fait et la j'ai rien qui s'affiche mon script se lance mais n'attend pas la fin pour passer a la suite ???

  16. #16
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    je n'ai pas mis de shell_exec dans la page que j'appelais... mais sinon c'est testé

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    sinon autre idée mais je ne sais pas comment la mettre en place

    lancer le script shell en background comme ca je n'attend pas la fin de l'excution au niveau serveur du coup je charge la feuille je pense donc mon "veuillez attendre" puis en javaScript faire une requete Ajax reguliere pour savoir si le script est fini et lorsqu'il est fini arreter l'attente et faire la redirection

    que pensez-vous de cette idée et aussi si elle bien comment faire l'attente et appel regulier au ajax

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    ben alor d'ou peut venir l'erreur car le shell_exec est bien lancer mais j'ai pas l'affichage et il attent pas la fin du script bizar??? non

  19. #19
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    je ne pense pas... comment sauras-tu ?
    surtout s'il s'agit d'un script... tu ne le verras pas avec un "pgrep"

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Points : 102
    Points
    102
    Par défaut
    je croi avoir trouver pourquoi toi sa fonctionne et pas moi car tu a un lien pour lancer l'ajax moi il se lance automatiquement

    tu en pense quoi

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Lancer 4 scripts shell en même temps
    Par zara5 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 18/08/2014, 23h39
  2. Log pour erreurs Insert dans script Shell
    Par pcsystemd dans le forum Linux
    Réponses: 1
    Dernier message: 16/06/2009, 21h54
  3. [Système] Exec pour script shell
    Par Tempotpo dans le forum Langage
    Réponses: 9
    Dernier message: 31/08/2006, 14h08
  4. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36
  5. [Système][Process] Scripts shell à partir d'une appli java
    Par mickbzh dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 22/07/2005, 15h40

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