Page 1 sur 1

validité code

Posté : 06 févr. 2013, 16:54
par a.muller
bonjour

je cherche à faire exécuté un scripte shell via se programme malheureusement il refuse de l’être.

il doit normalement être appeler par un autre code mais celui-ci fait bien sont travaille donc pas de problème de ce coté

<?php /* Created on: 06/02/2013 */ ?>
<html>
<body>
<?php
$varia=exec(/data/..../action.txt Var1 Var2 Var3)
echo $varia;
?>
</body>
</html>

merci de votre aide

Re: validité code

Posté : 06 févr. 2013, 17:38
par xTG
Montres nous le code exact que tu exécutes déjà...
Car là je pourrai t'envoyer relire un cours sur les fonctions PHP et leurs paramètres. ;)

Re: validité code

Posté : 06 févr. 2013, 17:40
par a.muller
voila je part d'ici

<html>
<!-- Created on: 06/02/2013 -->
<head>
</head>
<body>

<FORM method="get" onsubmit="php.php" onreset="handler"> <!--def des commande bouton -->
<INPUT TYPE="text" NAME="Var1" SIZE=30 MAXLENGTH=40 VALUE="donnée1"> <!-- etablissement des fenetres de capture-->
<br/><INPUT TYPE="text" NAME="Var2" SIZE=30 MAXLENGTH=40 VALUE="donnée2">
<br/><INPUT TYPE="text" NAME="Var3" SIZE=30 MAXLENGTH=40 VALUE="donnée3">
<br/><INPUT TYPE="submit" name="nom" value="Envoyer"> <!-- bouton-->
<INPUT TYPE="reset" VALUE="Recommencer">
</form>

</body>
</html>

pour ensuite prendre :
<?php /* Created on: 06/02/2013 */ ?>
<html>
<body>
<?php
$tab = array(2,5,6);
$varia=exec(action.txt,$tab);
echo $varia;
?>
</body>
</html>

Re: validité code

Posté : 06 févr. 2013, 18:15
par yann18
 $varia=exec(action.txt,$tab);//passthru() est mieux adapté pour raison de sécurité 
action.txt n'est pas un script shell s'il en est un, il doit porter l'extension .sh (action.sh).Ensuite la variable $tab est un tableau qui affiche le résultat de la commande shell donc tu ne peux pas afficher un tableau avec echo essaies de faire print_r($tab) à la place echo pour voir quel resultat est retourné/

Re: validité code

Posté : 06 févr. 2013, 18:28
par a.muller
merci je change déjà sa et continu

Re: validité code

Posté : 06 févr. 2013, 18:34
par xTG
De plus du coup je te renverrai bien vers un cours sur les fonctions et les variables...
$varia=exec(action.txt,$tab); // tu concatènes la constante action avec la constante txt
$varia=exec('action.txt',$tab); // correct
Pour ton script shell il faut aussi qu'il possède des droits d'exécutions (+x).

Re: validité code

Posté : 06 févr. 2013, 21:55
par nicolas
 $varia=exec(action.txt,$tab);//passthru() est mieux adapté pour raison de sécurité 
La fonction passthru() n'offre pas plus de sécurité. Que l'on utilise pssthru() ou exec() ou system() d'ailleurs, il faut vérifier si besoin les arguments passés à la fonction.

action.txt n'est pas un script shell s'il en est un, il doit porter l'extension .sh (action.sh).
Absolument pas.
Il faut que le fichier contiennent le shebang (#!) suivi du chemin complet vers un shell (sh, bash, ...) Et deuxièment pour que le script puisse être exécuté, il faut que l'utilisateur faisant tourner apache (ou php si c'est en ligne de commande) est le droit d'exécution sur ce script.