[RESOLU] Execution de commande bash avec arguments

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Execution de commande bash avec arguments

Re: Execution de commande bash avec arguments

par moriceh » 29 juil. 2016, 14:31

J'aurais une autre question, est-ce que ce serait possible de faire une page de recherche et de renvoyer l'url de la vidéo sélectionnée vers la page fm.php via _POST ?

Re: Execution de commande bash avec arguments

par moriceh » 29 juil. 2016, 14:30

Merci ! Tout foncrionne désormais !

Re: Execution de commande bash avec arguments

par moogli » 27 juil. 2016, 09:05

ah oui c'est normal il attend le retour du script shell donc s'il ne rend pas la main ça attend.

tu peux rediriger la sortie du script avec un truc du genre : exec('/home/pi/yt.sh ",'.$_POST["url"].'" > /dev/null &')

@+

Re: Execution de commande bash avec arguments

par moriceh » 26 juil. 2016, 16:52

Ca y est, ca fonctionne mais la page php ne se charge pas tant que l'émission FM est en cours...

Re: Execution de commande bash avec arguments

par moriceh » 26 juil. 2016, 16:38

Mon fichier est en chmod 777 ( ca tourne en local donc pas grave).
Avec ton code et un ?> à la fin, php fm.php me retourne :

Code : Tout sélectionner

PHP Parse error: syntax error, unexpected 'exec' (T_STRING) in /var/www/html/fm.php on line 3
PS : Je suis un noob total en PHP

Re: Execution de commande bash avec arguments

par moogli » 26 juil. 2016, 16:34

Ca ne fonctionne pas :/
ça va pas aider au diagnostique ça !

si tu a simplement copier coller ma réponse certain que cela ne fonctionne pas il y a une erreur de syntaxe. C'est facile à corriger php te l'indique.

si tu n'as pas de message d'erreur il faut activer l'affichage des erreurs (display_error = on) et configurer le niveau de rapport d'erreur por tout avoir : (error_reporting = E_ALL)

est ce que l'utilisateur qui exécute php a le droit d’exécuter ton fichier ?
<?php
exec('/home/pi/yt.sh ",'.$_POST["url"].'"');
echo "La chanson se joue.";

Re: Execution de commande bash avec arguments

par moriceh » 26 juil. 2016, 15:42

Ca ne fonctionne pas :/

Re: Execution de commande bash avec arguments

par moogli » 26 juil. 2016, 15:40

salut,

les variables ne sont pas interprétées dans des chaines de caractères délimitées par des simple quote.
Utilise la concaténation pour que cela fonctionne.
<?php
$url = $_POST["url"]
exec('/home/pi/yt.sh ",'.$url}.''');
echo "La chanson se joue.";

@+

Execution de commande bash avec arguments

par moriceh » 26 juil. 2016, 15:17

Bonjour,

J'ai le logiciel PiFM installé sur un Raspberry PI et j'ai créé un script qui joue l'audio d'une vidéo youtube sur pifm. Je l'éxecute de la manière suivante :

Code : Tout sélectionner

./yt.sh [URL Youtube]
J'ai créé un formulaire ainsi qu'une page PHP pour que j'insère l'url dans une zone de texte via mon navigateur web et qui lance le script avec l'argument que j'ai entré (l'URL). Mais elle ne fonctionne pas.
Pouvez-vous me corriger ?
Merci d'avance !

formulaire.html :

Code : Tout sélectionner

<form action="fm.php" method="POST"> <label>URL Youtube</label> <input type="text" name="url"> <input type="submit" value="Valider"> </form>
fm.php :

Code : Tout sélectionner

<?php $url = $_POST["url"] exec('/home/pi/yt.sh "{$url}"'); echo "La chanson se joue."; ?>