Exécuter script shell grace à un bouton html
Fermé
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
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:
- Html execute shell command
- Classic shell windows 11 - Télécharger - Personnalisation
- Editeur html - Télécharger - HTML
- Sfc scannow command - Guide
- Classic shell c'est quoi ✓ - Forum Windows 10
- Espace html ✓ - Forum Webmastering
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
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.
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.
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
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
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
7 sept. 2009 à 15:22
Ben à première vue je vois rien de choquant, ça devrait fonctionner. ^^
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?
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?
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
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à.
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 :)
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 :)