Rechercher : dans
Par :

Recuperation variable du php au script bash

Dernière réponse le 14 sep 2009 à 15:18:56 madess, le 26 nov 2007 à 18:59:32 
 Signaler ce message aux modérateurs

Bonjour,

jai un problem de recuperation de variable d'un formulaire php qui doivent servir dans l'execution d'un script en bash.
j'appel le script bash à partir du scipt php par la methode POST.

kel commande du bash me faut il pour recuperer les valeurs entrées au formulaire ?

merci pour votre attention.

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « recuperation variable du php au script bash » dans :
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Exécuter un script shell VoirExé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...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

madess, le 28 nov 2007 à 13:06:05

Bonjour,

jai un problem de recuperation de variable d'un formulaire php qui doivent servir dans l'execution d'un script en bash.
j'appel le script bash à partir du scipt php par la methode POST.

kel commande du bash me faut il pour recuperer les valeurs entrées au formulaire ?

merci pour votre attention.
Configuration: Windows XP
Internet Explorer 6.03 message(s) posté(s) depuis le vendredi 16 novembre 2007

Répondre à madess

2

asevere, le 28 nov 2007 à 17:04:05

Bonjour,

Peux-tu nous montrer une partie du code ? Essentiellement le formulaire, et l'appel du script bash ?
Sans ça on ne pourra pas t'aider...

J'imagine qu'une solution, serait d'appeler ton script bash en passant en parametre les valeur du script php via la fonction kivabi1(), en gros en passant une ligne du style

/chemin/script.sh $_POST['var1'] $_POST['var2'] etc. 
et de les traiter dans ton script bash a la manière d'argument classiques ($1, $2, etc.)

Cordialement
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

3

madess, le 1 déc 2007 à 18:22:40

Bonjour,

merci de vous interesser a mon probleme.

voici mon script PHP:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>


</script>

<style type="text/css">
<!--
.Style7 {
font-size: 18px;
font-weight: bold;
}
.Style9 {
font-size: 16px;
font-weight: bold;
color: #000000;
}
.Style10 {
font-size: 18px
}
.Style12 {
color: #333366;
font-weight: bold;
font-size: 22px;
}
-->
</style>


</head>

<body>

<table width="67%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#0066FF"><table width="93%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">

<tr bgcolor="#FFFFFF">
<td width="300%" colspan="3" bgcolor="#0066FF"> </td>
</tr>
<tr>
<td colspan="3" bordercolor="#EBEDEC" bgcolor="#00CCFF"><table width="614" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="218"><div align="center"></div></td>
<td width="23" rowspan="5"> </td>
<td width="345" rowspan="5"><div align="center"><span class="Style12">CREATION DE COMPTE MAIL</span></div></td>
<td width="28" rowspan="5"> </td>
</tr>
<tr>
<td><div align="center"><strong><img src="formulaire_clip_image002.jpg" width="120" height="103" align="middle" /></strong></div></td>
</tr>
<tr>
<td width="218" height="19"><p align="center"><strong> Société d’Exploitation et de </strong></p></td>
</tr>
<tr>
<td><div align="center"><strong>Développement Aéroportuaire</strong></div></td>
</tr>
<tr>
<td height="29"><div align="center"><strong>Aéronautique Météorologique.</strong></div></td>
</tr>
</table></td>
</tr>
<tr>
<td colspan="3" bordercolor="#EBEDEC" bgcolor="#0066FF"> </td>
</tr>
<tr>
<td colspan="3" bordercolor="#EBEDEC" bgcolor="#00CCFF"> </td>
</tr>
<tr>
<td colspan="3" bordercolor="#EBEDEC" bgcolor="#00CCFF"><div align="center" class="Style9"></div></td>
</tr>
<tr>
<td colspan="3" bordercolor="#EBEDEC" bgcolor="#00CCFF"> </td>
</tr>
<tr>
<td colspan="3" bgcolor="#00CCFF"><div align="left" class="Style7"></div></td>
</tr>

<tr>
<td colspan='3' bgcolor="#00CCFF"><div align="center">

<?php

$pseudo = $_POST["pseudo"];

if ($pseudo =="" ) { echo"<center><font color=red>Veuillez enter un compte Mail SVP!.</font></center><br><br><A href='javascript:history.back()' class='links'>Allez à la page précédente</A></font></b></center>";}

elseif ( !eregi("^[_a-zA-Z0-9-]*$", $_POST['pseudo']) )


{ echo"<center><font color=red>Le compte ne peux contenir seulement des chiffres et des lettres.</font></center><br><br><A href='javascript:history.back()' class='links'>Allez à la page précédente</A></font></b></center>";}


else{

require ("config.php");
mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur $host");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
/*---------------------------- */

$query = mysql_query("SELECT * FROM inscript WHERE pseudo = '$pseudo'");
$res = mysql_num_rows($query);
if ($res != 0 ) // l'url existe déjà, on affiche le message d'erreur

{echo " <center><b><font color=red> CE COMPTE $pseudo N'EST PAS DISPONIBLE.
<br> Veuillez entrer un nouveau compte SVP !!;.<br><br><A href='javascript:history.back()' class='links'>Allez à la page précédente</A></font></b></center>";}

else{
echo " <center><b><font color=green>CE COMPTE $pseudo EST DISPONIBLE.
</font></b></center>" ;
echo " <form id='form1' name='form1' method='post' action='msg.php'>
<table width='604' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan='4'><div align='center'>Votre E.mail est:</div></td>
</tr>
<tr>
<td colspan='3'><div align='right'>
<input name='pseudo' type='text' id='pseudo' value=' $pseudo ' size='35' />
</div></td>
<td><span class='Style7'>@mail.sodexam.ci</span></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td width='145'><div align='right'></div></td>
<td width='109'> </td>
<td width='41'> </td>
<td width='309'> </td>
</tr>
<tr>
<td><div align='right'><strong>NOM</strong></div></td>
<td> </td>
<td> </td>
<td><strong><span class='Style3'>PRENOM</span></strong></td>
</tr>
<tr>
<td colspan='2'><div align='right'>
<input name='nom' type='text' id='nom' size='35' />
</div></td>
<td></td>
<td><input name='prenom' type='text' id='prenomv size='35' /></td>
</tr>
<tr>
<td colspan='2'><div align='right'></div></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align='right'><strong>DEPARTEMENT</strong></div></td>
<td> </td>
<td> </td>
<td><strong>MATRICULE EMPLOYE</strong></td>
</tr>
<tr>
<td colspan='2'><div align='right'>
<input name='depart' type='text' id='depart' size='35' />
</div></td>
<td> </td>
<td><input name='matle' type='text' id='matle' size='35' /></td>
</tr>
<tr>
<td colspan='2'><div align='right'></div></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan='2'><div align='right'><strong>SEXE</strong></div></td>
<td> </td>
<td><label>
<div align='left'>
<select name='sex' id='sex'>
<option selected='selected'>Masculin</option>
<option>Feminin</option>
</select>
</div>
</label></td>
</tr>
<tr>
<td colspan='2'> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan='2'><div align='right'></div></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align='right'><span class='Style3'><strong>MOT DE PASSE</strong></span></div></td>
<td> </td>
<td> </td>
<td><span class='Style10'><strong>CONFIRMATION DE MOT DE PASSE </strong></span></td>
</tr>
<tr>
<td colspan='2'><div align='right'>
<input name='mdp1' type='password' id='mdp1' size='35' />
</div></td>
<td> </td>
<td><input name='mdp2' type='password' id='mdp2' size='35' /></td>
</tr>
<tr>
<td colspan='2'><div align='right'></div></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan='2'> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan='2'><div align='right'>
<input type='submit' name='valid' id='valid' value='VALIDER' />
</div></td>
<td colspan='2'> </td>
</tr>
</table>
</form> ";
} }

?>
</div></td>
</tr>
<tr>
<td colspan="3" bgcolor="#00CCFF"><table width="616" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center">

</div></td>
</tr>
</table></td>
</tr>
<tr>
<td colspan="3" bgcolor="#00CCFF"> </td>
</tr>
<tr>
<td colspan="3" bgcolor="#00CCFF"><div align="right" class="Style10"><a href="index.php">Céer un nouveau compte</a></div></td>
</tr>
<tr>
<td colspan="3" bgcolor="#00CCFF"><div align="right"></div></td>
</tr>
</table></td>
</tr>
<tr>
<td bgcolor="#0066FF"> </td>
</tr>
</table>
</body>
</html>


voici mon script bash:

#!/bin/bash
read $pseudo
read $mdp1
useradd -G group $pseudo
echo $mdp1 |(passwd --stdin $pseudo)
exit

---------------------------------------------------------------------------------------------
comment appeler les variables variables $pseudo et $mdp1 entrés dans le formulaire en PHP pour etre executer dans le script bash ??????

Répondre à madess

4

fusée, le 14 sep 2009 à 10:08:48

Bonjour Madess,
tu as finalement résolu ton probleme?
je suis dans le même cas que toi aujourdhui
C'est claire que ca fait un bout de temps mais si ta quelques souvenir
mets moi sur la voie.
j'ai un formulaire avec deux champs et je veux utiliser les valeurs entrées lors de l 'execution de mon script shell via php.

merci

Répondre à fusée

5

asevere, le 14 sep 2009 à 10:17:40

Salut Fusée,

Même cause même conséquence:
Peut-tu répondre a là question ici: http://www.commentcamarche.net/...

Montre nous ton script bash, et l'appel de celui ci par PHP

A plus
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

6

fusée, le 14 sep 2009 à 11:06:10

:) rapide madess, c reconfortant§

==>script bash,
#!/bin/bash
# Création du projet $var1 avec la date $var2 dans mesprojets

sudo trac-admin /var/trac/mesprojets milestone add $var1 $var2


==>Script.php:
<?php
$result = shell_exec ('/var/www/page.trac/script.sh');
if($result) {
echo "Votre projet à bien été créé.\n";
}
exit;
?>

je veux qu'a l' execution du script.sh, $var1 et $var2 soient prises en compte comme suit:
sudo trac-admin /var/trac/mesprojets milestone add $var1 $var2

Merciiiiiiii

Répondre à fusée

7

asevere, le 14 sep 2009 à 11:18:41
  • +3

Ok,

Donc deux petites modifications s'imposent:

Ton script bash tout d'abord doit être cappable de reconnaitre les deux arguments:

#!/bin/bash
# Création du projet $var1 avec la date $var2 dans mesprojets
var1=$1
var2=$2

sudo trac-admin /var/trac/mesprojets milestone add $var1 $var2 
De cette façon tu peux appeler ton script dans une console comme suit:
./ton_script.sh nom_du_projet date
($var1 contiendra "nom_du_projet" et $var2 "date")

Ensuite, il suffit de reproduire cet appel dans php:
$result = shell_exec ('/var/www/page.trac/script.sh '.$var1.' '.$var2); 
(Eventuellement, tu peux passer les variable $_POST['var1'] et $_POST['var2'], mais là c'est un probmlème de PHP, ça dépend de ton code :-)

A plus
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

8

fusée, le 14 sep 2009 à 11:49:20

Ok
je teste tout de suite et je te dis si c'est ok ou pas.

Grand merci!

Répondre à fusée

9

fusée, le 14 sep 2009 à 12:15:43

Donc deux petites modifications s'imposent:

Ton script bash tout d'abord doit être cappable de reconnaitre les deux arguments:


Toujours rien.
j'ai modifié comme suit
==>
#!/bin/bash
# Création du projet $var1 avec la date $var2 dans mesprojets
var1=$1
var2=$2
sudo trac-admin /var/trac/mesprojets milestone add $var1 $var2

==>script.php
$result = shell_exec ('/var/www/page.trac/script.sh '.$var1.' '.$var2);

Mais lorsque je rempli les deux champs var1 et var2 de mon formulaire.html(qui appel script.php), le script se lance correctement mais les projets ne sont toujours pas créé.

J'ai bien vérifié, lorsque j entre la commande dans un console:
sudo trac-admin /var/trac/mesprojets milestone add projetest 18-09-09 ,
le projet est bel et bien crée.

:( je comprends pas!

Répondre à fusée

10

asevere, le 14 sep 2009 à 12:21:06
  • +1

Je penche pour un problème de php alors

Si tu fait avant l'execution du shellscriptun var_export de $var1, $var2

echo '<pre>'.var_export($var1,true).var_export($var2,true).'</pre>'
qu'est-ce que cela te donne (en gros, a ce moment la dans le script y a t'il quelques chose dans ces deux variables ?)

++
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

11

fusée, le 14 sep 2009 à 12:29:32

Voici ce que j obtiens

NULLNULL

j'avais pourtant entré deux valeur.

Répondre à fusée

12

asevere, le 14 sep 2009 à 14:22:26
  • +2

Si ton formulaire est envoyé en GET utilises $_GET['var1'] et $_GET['var2'], si ton formulaire est envoyé en POST utilises $_POST['var1'] et $_POST['var2']; ça devrait mieux fonctionner....

Pour savoir quelle méthode tu utilises (GET/POST) regardes dans la balise form l'attribut method, si tu ne l'a pas mis, la méthode par défaut est GET

A plus
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

13

fusée, le 14 sep 2009 à 15:07:30

Enfin un ptit sourir :)
Le projet est bel et bien créer dans mon application
mais (toujours un ptit souci ) la date ne s affiche dans le champs du nom.
Par exemple, si je tape dans mon formulaire

nom: test
date : 2juin

Dans mon application j obtiens :

non du projet : test 2juin
date de lancement : (rien)

Une idée ???

1000 fois merci.

Répondre à fusée

14

fusée, le 14 sep 2009 à 15:13:16

C'est ok! Il fallait juste un espace.
1001 fois merci pour tout.
j 'espere retomber sur vous en cas de souci :)))

Répondre à fusée

15

 asevere, le 14 sep 2009 à 15:18:56

Tant mieux et de rien! :)

j 'espere retomber sur vous en cas de souci :)))
Je suis loin d'être le seul, j'y suis même rarement, mais qui sait ;-)
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere
Collection CommentÇaMarche.net