Exécuter un fchier shell depuis un fichier php

Résolu
Micka57130 Messages postés 11 Statut Membre -  
Micka57130 Messages postés 11 Statut Membre -
Bonjour à tous,

Actuellement en projet, je dois exécuter un fichier shell (taka.sh) à partir d'un bouton sur une page html. J'ai pour cela écrit un petit programme en php pour exécuter le fichier shell.
<?php
if(isset($_POST['script']))
{
exec('./taka.sh');

}

<form action="controle.php" method="post">
<p>
<input type="submit" name="script" value="Lancer" />
</p>
</form>
?>

J'ai bien le bouton sur la page html, cependant le shell ne s'exécute pas.

PS: le shell fonctionne. Désolé pour cette demande un peu vague, je débute.
Merci d'avance.
Cordialement.

Micka

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Déjà, tu peux regarder ce que retourne la commande EXEC au moment de son exécution.
    Tu peux aussi t'assurer que le script est bien trouvé ...
    <?php
    
    $scriptFile = "./taka.sh";
    
    if(isset($_POST['script'])) {
     if(file_exists(scriptFile)){
      exec($scriptFile , $arrOP, $retVal);
      print_r($arrOP);
      print_r($retVal);
     }else{
     echo "Fichier $scriptFile  introuvable ! ";
     }
    }
    


    Si ça ne fonctionne toujours pas, vérifies aussi les droits sur tes répertoires.
    0
  2. Micka57130 Messages postés 11 Statut Membre
     
    Merci de ta réponse.

    J'ai testé ton code. Le fichier est introuvable.
    Il a bien tous les droits.

    Cordialement,
    Mickael.
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Donc.. si le fichier est "introuvable" .. c'est
      - Soit qu'il ne porte pas ce nom là
      - Soit qu'il ne se trouve pas à l'endroit que tu indiques

      Dans le message d'erreur... quel est le chemin du fichier qui est indiqué ?
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Oups .. petite erreur de copier/coller de ma part
      Il manque un $ devant la variable dans le IF

      <?php
      
      $scriptFile = "./taka.sh";
      
      if(isset($_POST['script'])) {
       if(file_exists($scriptFile)){
        exec($scriptFile , $arrOP, $retVal);
        print_r($arrOP);
        print_r($retVal);
       }else{
       echo "Fichier $scriptFile  introuvable ! ";
       }
      }
      
      0
    3. Micka57130 Messages postés 11 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Quel message d'erreur ?
      J'ai juste un retour sur la page html :" Fichier ./taka.sh introuvable ! "

      Le fichier se trouve bien dans le bon répertoire.
      0
    4. Micka57130 Messages postés 11 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Effectivement, le fichier n'est plus introuvable.
      Cependant la page web "charge" indéfiniment. Impossibilité de voir si le code fonctionne donc.
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Micka57130 Messages postés 11 Statut Membre
       
      Après.. tout dépend de ce que contient ton script sh.
      Tu as essayé de faire un script qui ne ferait qu'un LS par exemple ?
      0