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] exec() qui bloque le chargement de page sous IE


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut [Système] exec() qui bloque le chargement de page sous IE
    Bisoir,

    j'ai un petit problème d'affichage (ou d'interprétation) spécifique à IE, à cause d'une commande PHP.

    Dans mon code, je fais un print d'un formulaire et ensuite je fais un appel de programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec("calc.exe", $output , $return_var);
    Sous Mozilla, pas de problème, il m'affiche le formulaire et il continue le chargement de la page tant que je n'ai pas fermé la machine à calculer (calc.exe).
    Sous IE, par contre, il ne m'affiche aucun élément de la page tant que je n'aie fermé la machine à calculer.


    Auriez-vous une idée du comment je dois faire pour qu'IE ne foire pas l'affichage à cause du chargement dû à l'ouverture du programme externe ?
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Heuuuuuuuuu... un rapport avec ça ?

    Note : Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

    Sinon, tu es bien conscient que tu vas lancer calc sur le serveur ! pas chez le client, et que dans ton cas, si ça s'affiche a l'écran, c'est parce que ton serveur et ton client sont un seul et meme poste !?
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    En fait, je ne vois pas de problème à ce que la page charge tant que le programme s'execute.

    Seulement, mozilla affiche le contenu de la page (celui qui se trouve avant le exec() dans le script) puis execute le programme externe et charge le reste de la page tant qu'il n'est pas fermé (c'est ce qu'il me faut) alors que IE n'affiche aucun élément de la page tant que le prog appellé n'a pas été fermé.

    Mais je ne vais pas rediriger la sortie vers un fichier, je traite le return_var autrement.

    Oui oui, pour la partie serveur, je suis conscient.
    C'est une application FME que je fais tourner.
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Honnetement, je sais pas comment PHP gère le retour de l'exec, mais si le résultat est sans intéret (c'est le cas pour calc non !?), autant essayé de suivre la procédure normale et de rediriger la sortie vers >NULL (enfin un fichier poubelle sous win).

    Ensuite, je propose ça à défaut d'avoir mieux a proposer, car je ne croit moi même pas en ma suggestion vu que l'execution du script n'est pas censé dépendre du navigateur...

    Sinon, une autre suggestion (à coté de la plaque, certes, mais une suggestion quand même) : il existe des dizaines de script calculatrice tout fait en javascript et meme en PHP... pourquoi ne pas utiliser un de ces scripts en popup ? ça t'assurerai que ton appli est multi plateforme, te rendrait indépendant de la distrib sur laquelle tu bosse et la valeur de retour serait plus facile a gérer si besoin...
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  5. #5
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    J'ai besoin de tester le retour via php, et le "calc.exe" n'était qu'un exemple, c'est autre chose que je dois lancer.
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Si c'est uniquement un problème d'affichage, gérer le buffer me semble une bonne solution :

    ob_start
    ob_get_contents
    ob_flush

    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 216
    Points
    216
    Par défaut
    Merci mais sous IE, ça ne change rien (alors que sous mozilla, je peux mumuser avec).


    J'ai "résolu" mais pas comme je voulais. J'ai opté pour un iframe (solution html) pour qu'il affiche la page mais pas le formulaire.
    " Si un jour nocturne et un jour diurne pouvaient nous embrasser tous,
    ce serait le but suprême de tous les désirs. " [Schelling]

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

Discussions similaires

  1. problème de chargement de pages sous IE
    Par enneite2 dans le forum IE
    Réponses: 1
    Dernier message: 16/04/2012, 15h42
  2. PHP exec ($command) qui bloque ma page
    Par danzka dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2011, 15h32
  3. Réponses: 3
    Dernier message: 12/11/2008, 18h38
  4. [Système] Un exec qui n'exec pas sous windows :)
    Par DanaX dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2007, 15h32
  5. Formulaire sur plusieurs pages qui bloque
    Par yiuche dans le forum Langage
    Réponses: 7
    Dernier message: 03/08/2006, 09h23

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