Pause exécution script PHP

index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   -  
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour.

Ma question est plus précise que le titre:

J'aimerai qu'à un moment précis, le fichier PHP execute une commande donnée, qu'après 3 sec.

Voici une partie de mon fichier:

<?php
    print "L'arrêt de la vidéo est en cours.";
    exec("video.bat" /* On lance le script d'arrêt de vidéo */
    /* PATIENTER 3 SECONDES PUIS: */ 
    echo '<SCRIPT>javascript:window.close()</SCRIPT>'; /* On ferme la fenêtre */
?>


J'aimerai savoir si c'est possible.
Merci à vous.
A voir également:

5 réponses

Lerendra Messages postés 553 Statut Membre 299
 
Bonjour index

Je te propose d'utiliser la fonction
sleep
proposé par php. Voici votre code après l'insertion de la fonction:

<?php
    print "L'arrêt de la vidéo est en cours.";
    exec("video.bat"); /* On lance le script d'arrêt de vidéo */
    sleep(3);//Attend 3 secondes
    echo '<SCRIPT>javascript:window.close()</SCRIPT>'; /* On ferme la       fenêtre */
?>


Merci de me mettre un +1 si ma réponse vous à aidé :p
2
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Un grand merci, j'essaie tout de suite.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Oups ...

Parse error: syntax error, unexpected 'sleep' (T_STRING) in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\ts.php on line 4
0
diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 862
 
Bonjour,

C'est sans doute dû a la non fermeture de la fonction Exec
0
Lerendra Messages postés 553 Statut Membre 299
 
Regarde à ta ligne numéro 3 ! Tu as une parenthèse ouvert et qui ne se referme pas !
exec("video.bat" /* On lance le script d'arrêt de vidéo */
0
Pitet Messages postés 2845 Statut Membre 527
 
Attention aux erreurs de syntaxe dans le code proposé par Lerendra, il manque la parenthèse fermante et un point-virgule à l'instruction exec. Il manque également un point-virgule à la fin de l'instruction sleep.

Montre nous ton code si tu n'arrives pas à corriger ces erreurs.
0
Lerendra Messages postés 553 Statut Membre 299 > Pitet Messages postés 2845 Statut Membre
 
Je n'avais pas fait attention à son erreur de syntaxe !^^ Je viens de le voir maintenant !^^
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
C'est pas bien méchant, j'aurais dû faire attention en copiant/collant.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Merci pour vos précisions.

Voici mon fichier corrigé:

<?php
    print "L'arrêt de la vidéo est en cours.";
    exec("ts.bat"); /* On lance le script d'arrêt de vidéo */
    sleep(3);//Attend 3 secondes
    echo '<SCRIPT>javascript:window.close()</SCRIPT>'; /* On ferme la fenêtre */
?>


Mais rien ne se passe à présent ...

J'ai pensé, si vous avez la motivation de m'aider (je n'en doute pas) à faire un script avec conditions:

SI: le script est exécuté sans soucis
ALORS: Fermer la fenêtre
SEULEMENT: après trois secondes

Vous voyez ?
Je débute en PHP, je vous demande de m'excuser, je n'ai que quelques notions pour le moment.
0
Pitet Messages postés 2845 Statut Membre 527
 
C'est pourtant ce que semble faire ton script.

"Rien ne se passe" c'est à dire ? Ton fichier ts.bat est-il bien exécuté ?

Quelques remarques :
- le premier print ne sera affiché que à la fin du script (sauf si l'option implicit_flush est activé)
- pour la condition "si le script est exécuté sans soucis", si il s'agit de l'exécution du script ts.bat, tu peux récupérer le retour de cette exécution en précisant un second paramètre à l'instruction exec (cf. documentation php)
- la fonction javascript window.close() ne fonctionnera que si la fenêtre a été ouverte en javascript via la fonction window.open(), ce qui ne semble pas être le cas ici.
Si la fenêtre n'as pas été ouverte avec javascript, il n'existe pas de moyen de fermer celle-ci autre que l'intervention de l'utilisateur.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231 > Pitet Messages postés 2845 Statut Membre
 
"Rien ne se passe" c'est à dire ? Ton fichier ts.bat est-il bien exécuté ?"
En fait, la fenêtre ne se ferme pas je veux dire.

En ce moment ce qui ouvre la fenêtre c'est cette commande:

<input type="button" value="Nom du bouton" onclick="window.open('ts.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=1, copyhistory=0, menuBar=0, width=100, height=100');return(false)"></a>
0
Utilisateur anonyme
 
Bonjour

Je ne sais pas très bien ce que tu cherches à faire, mais es-tu bien conscient que le "print" et le "echo" affichent quelque chose chez le client, alors que le "exec" et le "sleep" se passent sur le serveur ? Ça peut avoir du sens si tu travailles en local, mais si tu travailles en ligne j'ai beaucoup de mal à voir ce que ça peut donner. Comme tu dis que tu es débutant, j'ai plutôt l'impression que tu ne te rends pas bien compte de ce que tu fais.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Oui, je débute tu as raison je ne me rends pas bien compte de ce que je fais.

J'aimerais simplement lancer un .bat via une page HTML et que sur le serveur il y est le lancement de ce dernier qui, fermera une application et une fois que c'est fait, renvoie l'information sur le client en le prévenant.
Enfin, la fenêtre se ferme seule ...

J'ai une partie du script mais je bloque à certains endroits.
0
Utilisateur anonyme
 
Si c'est bien pour agir sur le serveur, ok, je n'ai rien à dire. J'avais mal préjugé de tes intentions.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Aucun problème :)

J'aimerais, si tu veux bien, m'aider ?
Sinon, je le ferais à l'occasion en m'aidant de sites tutoriels ^^

En tout cas merci à tous pour votre aide.
0