Rechercher : dans
Par :

Exécuter script shell grace à un bouton html

Dernière réponse le 14 sep 2009 à 10:04:19 fusée, le 7 sep 2009 à 12:53:41 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Exécuter script shell grace à un bouton html » dans :
Exécuter un script shell Voir Exécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...

1

M@dien, le 7 sep 2009 à 14:12:49

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. Pour plus de rapidité, expliquez bien votre problème, cela évitera des échanges inutiles.
Si vous ne prenez pas le temps d'écrire en français correct, on ne prendra peut-être pas le temps de vous répondre...
Pensez-y.

Répondre à M@dien

2

fusée, le 7 sep 2009 à 14:50:57

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

Répondre à fusée

3

M@dien, le 7 sep 2009 à 15:22:45

Ben à première vue je vois rien de choquant, ça devrait fonctionner. ^^ Pour plus de rapidité, expliquez bien votre problème, cela é­vitera des échanges inutiles.
Si vous ne prenez pas le temps d'écrire en français correct,­ on ne prendra peut-être pas le temps de vous répondre...
Pensez-y.

Répondre à M@dien

4

fusée, le 7 sep 2009 à 16:12:28

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?

Répondre à fusée

5

M@dien, le 7 sep 2009 à 16:47:17

Il y a un espace entre <? et php, il ne doit pas y en avoir. Ca doit venir de là. Pour plus de rapidité, expliquez bien votre problème, cela évitera des échanges inutiles.
Si vous ne prenez pas le temps d'écrire en français correct, on ne prendra peut-être pas le temps de vous répondre...
Pensez-y.

Répondre à M@dien

6

fusée, le 8 sep 2009 à 12:34:36

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 :)

Répondre à fusée

7

 fusée, le 14 sep 2009 à 10:04:19

Bonjour,
C ok
j ai trouvé ce qui clochait.
Merci

Répondre à fusée