Recuperation variable du php au script bash

Résolu/Fermé
madess Messages postés 5 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007 - 26 nov. 2007 à 18:59
 Miss kouka - 16 mars 2011 à 13:04
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.
A voir également:

12 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
14 sept. 2009 à 12:21
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 ?)

++
1
madess Messages postés 5 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007 1
28 nov. 2007 à 13:06
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
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
28 nov. 2007 à 17:04
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
0
madess Messages postés 5 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 1 décembre 2007 1
1 déc. 2007 à 18:22
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 ??????
0

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

Posez votre question
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
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
14 sept. 2009 à 10:17
Salut Fusée,

Même cause même conséquence:
Peut-tu répondre a là question ici: https://forums.commentcamarche.net/forum/affich-4153132-recuperation-variable-du-php-au-script-bash#2

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

A plus
0
:) 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
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
14 sept. 2009 à 11:18
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
0
ok
je teste tout de suite et je te dis si c'est ok ou pas.

Grand merci!
0
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!
0
voici ce que j obtiens

NULLNULL

j'avais pourtant entré deux valeur.
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
14 sept. 2009 à 14:22
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
0
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.
0
C'est ok! Il fallait juste un espace.
1001 fois merci pour tout.
j 'espere retomber sur vous en cas de souci :)))
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
14 sept. 2009 à 15:18
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 ;-)
0
Bonjour fusée ,


C'est claire que ca fait un bout de temps mais est ce klk1 poucez m'aider je suis totalement bloqué voila mon probleme je veux recuperer une valeur de radio boutton da ma formulaire en php vers mon fichier.bat et je ne sais pas comment.

voial mon fichier.bat

var2=$2
#$var2 c'est le nom de mon fichier.conf qui j'ai selectioné en radio boutton

D:

cd D:\CQIET\sources

cqperl main.pl D:\CQIET\configuration\$var2 D:\CQIET

voila mon code.php

passthru('D:\CQIET\Wampee-2.1-beta-2\Wampee-2.1-beta-2\www\projet_NDS\koko1.bat'.$var1,$returnvalue);

if ($returnvalue != 0){
echo('erreur');
}else{
echo('ok'.$d);
}

Merci d'avance.
0