Exécuter script shell grace à un bouton html

Fermé
fusée - 7 sept. 2009 à 12:53
 tito - 5 févr. 2012 à 13:51
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 mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
7 sept. 2009 à 14:12
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
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 mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
7 sept. 2009 à 15:22
Ben à première vue je vois rien de choquant, ça devrait fonctionner. ^^
0
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 mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
7 sept. 2009 à 16:47
Il y a un espace entre <? et php, il ne doit pas y en avoir. Ca doit venir de là.
0
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
Bonjour,
C ok
j ai trouvé ce qui clochait.
Merci
0
peut tu donner la solution

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