Bash php

Résolu/Fermé
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - Modifié par jordane45 le 26/11/2014 à 17:31
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 - 26 nov. 2014 à 22:30
Bonjour, voilà, j'essai de mettre un bouton sur ma page php dans le html, qui execute une commande bash dès qu'on clique dessus, malheureusement ça ne marche pas, pouvez vous me dire quel est le problème ?
Voici mon code dans le html (le fichier est bien en .php)
<?php
    if (isset($_POST['start']))
    {
         shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt');
    }
?>

<body>
    <form method="post">
    <p>
        <button name="start">Lancer Transmission</button>
    </p>
    </form>
A voir également:

4 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 nov. 2014 à 17:30
Bonjour,

J'ai déplacé ta question dans le forum PHP ... le forum disque dur.. n'étant surement pas le meilleur pour t'aider...

Ensuite.. j'ai édité ton message pour y ajouter les balises de code.
merci d'y penser à l'avenir.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 17:33
je viens de régler le soucis après l'avoir vu
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 nov. 2014 à 17:34
Pour ce qui est de ton souci...
Il faut que ton "bouton" fasse un SUBMIT .

Essayes ça :
<?php
    if (isset($_POST['start'])) {
         echo "<br>Lancement du Batch ! <br>";
         shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt');
    }else{
      // le temps des tests !
      echo "<pre>";
      print_r($_POST);
      echo "</pre>";
    }
?>


    <form method="post" action="">
    <p>
        <input type="submit"  name="start" value="Lancer Transmission">
    </p>
    </form>

0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 17:36
Je teste de ce pas
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 17:40
Ca marque bien lancement du batch comme mis dans l'echo du php, mais ça ne lance pas la commande (lancée en terminal et qui fonctionne)
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017
26 nov. 2014 à 17:50
Là ce n'est plus vraiment un souci du PHP .
Ca peut venir d'un pb de droit sur le fichier et ou un souci avec la redirection .
Tu peux essayer :

shell_exec('echo "bla" 2>&1 1>> /home/pi/Desktop/Scripts/Auto/essai.txt')


Après.. je n'ai pas de machine UNIX sous la main pour tester....
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 17:46
Comme ta commande s'affiche très bien sur le navigateur (lancement du batch) je suppose que le problème vient de la mienne, j'ai donc testé :
shell_exec à la place de exec
rajouter un sudo sur la commande
la commande sur terminal
actualiser plusieurs fois
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 18:00
non toujours rien, pourtant j'ai déjà utilisé dans commandes bash dans du php sans soucis, mais avec le bouton, rien n'y fait ! j'ai essayé un<?php
shell_exec('echo "bli" >> ~/Desktop/Scripts/Auto/esaaaaaai.txt); ?>
Qui devrait faire la commande mais qui ne la fait pas, j'ai donc changé les droits à 755 mais toujours pas
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
Modifié par jordane45 le 26/11/2014 à 18:07
voici le code complet
<!DOCTYPE html>
<html lang="fr">
        <meta charset="utf-8"/>
        <title>PI</title>
<link rel="stylesheet" href="index.css"/>
<body>
 <header>
  <h1>Transmission</h1>
 </header>
 <article>

<?php
    if (isset($_POST['start'])) {
         echo "<br>Lancement du Batch ! <br>";
  shell_exec('echo "bla" 2>&1 1>> /home/pi/Desktop/Scripts/Auto/essai.txt'); 
    }else{
      // le temps des tests !
      echo "<pre>";
      print_r($_POST);
      echo "</pre>";
    }
?>
<?php
 shell_exec('echo "bli" >> /home/pi/Desktop/Scripts/Auto/essssai.txt');
?>
    <form method="post" action="">
    <p>
        <input type="submit"  name="start" value="Lancer Transmission">
    </p>
    </form>

<?php
    if (isset($_POST['stop']))
    {
         shell_exec('echo "bla" >> /home/pi/Desktop/Scripts/Auto/essai.txt');
    }
?>

<body>
    <form method="post">
    <p>
        <input type="submit" name="stop">Couper Transmission</button>
    </p>
    </form>

 </article>


</body>
</html>


Nom fichier : Transmission.php
But final : avoir deux boutons pour lancer/couper transmission
But actuel : ecrire bla dans le fichier essai
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 nov. 2014 à 18:14
voici le code complet

Oui et ?

On sait que le souci se trouve sur le shell_exec .. le reste de ta page fonctionnant correctement.. quel est l'intérêt de nous le donner ?

Par contre, tu as regardé dans le PHP.ini la variable safe_mode_exec_dir ?
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 18:17
Je l'ai donné au cas où ce soit lui qui ai un soucis
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 18:21
pi@raspberrypi /etc/php5/apache2 $ grep "safe_mode" php.ini
sql.safe_mode = Off
idem pour
pi@raspberrypi /etc/php5/cli $ grep "safe_mode" php.ini
sql.safe_mode = Off
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
26 nov. 2014 à 20:53
Ne serait-ce pas un problème de droit ?
Le serveur apache est executé en tant que www-data, je crois, donc, il est possible que cet utilisateur n'ai pas les droits d'écriture dans le dossier ou tout simplement à un des dossiers parents, ce qui fait échoué la commande.
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 21:14
J'ai mis tout à 777 pour tester, ça ne change rien.
J'ai d'autres pages en php qui marchent sans soucis, juste celle avec le bouton qui ne marche pas :'(
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017
26 nov. 2014 à 21:23
Tes autres pages font du shell_execute ??
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
26 nov. 2014 à 21:24
Est-ce que le fichier error.log (souvent dans /var/log/apache2) te met un message spécifique ?
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 21:49
Oui mais autres pages font du shell_exec('cmd'); sans soucis
0
faseldi Messages postés 279 Date d'inscription dimanche 9 novembre 2014 Statut Membre Dernière intervention 3 janvier 2017 20
26 nov. 2014 à 21:51
Si mon ssh veut bien marcher je vais regarder le fichier des erreurs.
0