Exécuter script shell grace à un bouton html

fusée -  
 tito -
Bonjour,
comme le titre l'indique, je voudrais exécuter un script shell en cliquant sur le vbouton valider de mon formulaire htm.
J'ai deux champs nom et date en plus de mon bouton.
Que dois-je faire?

Créer un formulaire php (qui sera appelé par le html) qui permettra de lancer le script?
ou
inserer du javasript dans le code du formulaire?

Dans les deux cas, pourriez vous me donner la syntaxe du code ?

Merci d'avance
Configuration: Windows XP Internet Explorer 6.0

8 réponses

  1. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Bonjour.

    Hum. je pense qu'un petit rappel sera utile:
    - PHP est du code serveur. il est interprété au moment de la génération de la page, avant l'envoi de la page générée au client. Si l'on lance un shell à partir de PHP, il faut se placer du point de vue du serveur. c'est à dire que si on lance un programme, le programme devra être accessible du serveur, et sera lancé sur le serveur.
    - Javascript est un code client. il est interprété au chargement de la page dans le navigateur, et également tout au long de la vie de la page web, jusqu'à la fermeture de la page dans le navigateur. Pour des raisons évidentes de sécurité, il est impossible de lancer un programme via javascript, puisque cela lancerait le programme sur l'ordinateur de l'internaute. Lancer un "format c:" serait assez destructeur...

    Autrement dit, lancer un shell sur le serveur: OUI. sur le client: NON.

    Pour la partie serveur, il suffit de lancer la commande EXEC ( http://www.manuelphp.com/php/function.exec.php )

    Note: dans le cadre d'un réseau privé, il est possible de mettre tout simplement un lien HTML vers l'emplacement réseau ou web du shell. mais il faudra que la personne clique sur le lien pour l'activer.
    3
  2. fusée
     
    merci pour la lumiere :)

    voici ce que j'ai fais:
    1) mon formulaire html

    <body>

    <form id="form1" name="form1" method="POST" action="script.php">

    <p><kbd><strong>Nom du projet </strong></kbd></p>

    <p>

    <label>

    <input type="text" name="var1" id="textfield" />

    </label>

    </p>

    <p><span class="art-button">Date de lancement:</span></p>

    <p><span class="art-button">

    <input type="text" name="var2" id="textfield2" />

    </span></p>

    <input type="submit" name="button" value="Ajouter projet"/>

    <p>

     </label>

    <p> </p>

    </form>

    </body>

    </html>

    2) mon script.php

    <? php
    $var1 = $_POST ['var1'];
    $var2 = $_POST ['var2'];
    exec('sh /var/trac/script.sh');
    ?>

    3) Mon script shell

    #!/bin/bash
    # Création du projet $var1 avec la date $var2 dans l'environnement
    sudo trac-admin /var/trac/afn milestone add $var1 $var2

    Correction?

    Merci encore
    0
  3. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Ben à première vue je vois rien de choquant, ça devrait fonctionner. ^^
    0
  4. fusée
     
    Lorsque je clique sur mon bouton "valider projet" après avoir rempli mon formulaire , j'ai l'erreur suivante :

    Parse error: syntax error, unexpected T_VARIABLE in /var/www/page.trac/lancer_script.php on line 2

    Le contenu de mon fichier lancer_script.php est :
    <? php
    $var1 = $_POST ['var1'];
    $var2 = $_POST ['var2'];
    exec('sh /var/trac/script.sh');
    ?>

    pourquoi cette erreur?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Il y a un espace entre <? et php, il ne doit pas y en avoir. Ca doit venir de là.
    0
  7. fusée
     
    Bonjour,
    Merci pour la correction de l'espace,je n'ai plus le message d'erreur .
    Mais j'ai un souci parce que je n'ai pas le résultat escompté.
    Le script devrait me permettre de créer un projet dans une ou plusieurs base de données selon le nombre de ligne que je mets.
    Dans cet exemple,
    #!/bin/bash
    # Création du projet $var1 avec la date $var2 dans l'environnement
    sudo trac-admin /var/trac/afn milestone add $var1 $var2

    le projet devrait etre créé dans la base de données afn .

    PS:lorsque je lance le script dans le terminal , le projet est effectivement crée .

    Si vous y comprenez quelque chose, merci de me donner un coup de pouce :)
    0
  8. fusée
     
    Bonjour,
    C ok
    j ai trouvé ce qui clochait.
    Merci
    0
    1. soukafa
       
      peut tu donner la solution

      cela m'interesse
      0
  9. tito
     
    j'ai exactement le même problème

    la solution orrai était appréciable

    quelqu'un pourrai m'aider a pouvoir executer mon scripte depuis ma page web

    il est évidant que c'est un problème de permission mais j'ai tout essayé
    et impossible
    0