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
A voir également:

8 réponses

M@dien Messages postés 437 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
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
M@dien Messages postés 437 Date d'inscription   Statut Membre Dernière intervention   74
 
Ben à première vue je vois rien de choquant, ça devrait fonctionner. ^^
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
M@dien Messages postés 437 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
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
fusée
 
Bonjour,
C ok
j ai trouvé ce qui clochait.
Merci
0
soukafa
 
peut tu donner la solution

cela m'interesse
0
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