Pause exécution script PHP

Fermé
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 - Modifié par index le 17/11/2015 à 15:18
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 - 18 nov. 2015 à 15:01
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.

5 réponses

Lerendra Messages postés 408 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 28 mai 2018 299
Modifié par Lerendra le 17/11/2015 à 15:45
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
17 nov. 2015 à 15:37
Un grand merci, j'essaie tout de suite.
0
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
17 nov. 2015 à 15:38
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 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 845
17 nov. 2015 à 15:42
Bonjour,

C'est sans doute dû a la non fermeture de la fonction Exec
0
Lerendra Messages postés 408 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 28 mai 2018 299
17 nov. 2015 à 15:43
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
17 nov. 2015 à 15:43
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 408 Date d'inscription jeudi 26 septembre 2013 Statut Membre Dernière intervention 28 mai 2018 299 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
17 nov. 2015 à 15:44
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
17 nov. 2015 à 15:52
C'est pas bien méchant, j'aurais dû faire attention en copiant/collant.
0
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
Modifié par index le 17/11/2015 à 15:58
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 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
17 nov. 2015 à 16:08
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
17 nov. 2015 à 22:46
"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
18 nov. 2015 à 00:21
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
18 nov. 2015 à 13:19
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
18 nov. 2015 à 14:42
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
Modifié par index le 18/11/2015 à 15:01
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