Probleme PERL + CGI

Probleme PERL + CGI - Perl - Programmation

Marsh Posté le 17-03-2009 à 02:44:59    

Bonsoir,
 
Apres avoir cherché un bout de temps, je me resouds a demander de l'aide:
 
j'ai un fichier perl executé en cgi sur mon serveur web.
 
je veux qu'une variable perl recupere le resultat d'un programme en bash:
 
j'ai donc ca
 

Code :
  1. $OS=`../script/recup_os.sh $new_host`;


 
si j'execute dans un shell recup_os.sh 192.168.0.1 par exemple, ca me retourne un mot (en l'occurence "Linux" car c'est le resultat d'un uname)
 
dans mon script perl je fais un:

Code :
  1. print "OS = $OS";


et:

Code :
  1. OS <INPUT TYPE="text" NAME="host_os" SIZE=25  value="$OS" readonly="readonly"></BR>


 
Si j'execute mon script perl dans un shell, tout se passe bien:
 
Content-Type: text/html; charset=ISO-8859-1
 

Code :
  1. <!DOCTYPE html
  2.         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3.          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
  5. <head>
  6. <title>Recuperation de l&#39;os</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  8. </head>
  9. <body>
  10. test zob: accessible.
  11. OS = Linux      <FORM ACTION="insert_new-host.pl" METHOD=POST>
  12.       <H1><DIV ALIGN="center">Enregistrement d'un nouveau client</DIV></H1>
  13.       Serveur client <INPUT TYPE="text" NAME="new_host" SIZE=25  value="zob" readonly="readonly"></BR>
  14.       OS <INPUT TYPE="text" NAME="host_os" SIZE=25  value="Linux" readonly="readonly"></BR>
  15.       DESCRIPTION <INPUT TYPE="text" NAME="host_comment" SIZE=30 >
  16.       <P>
  17.       <INPUT TYPE="submit" VALUE="Valider">
  18.       <INPUT TYPE="reset" VALUE="Effacer">
  19.       </FORM>
  20. </body>
  21. </html>


 
Par contre dans mon navigateur WEB:
 
$OS renvoie vide, j'ai:
 

Code :
  1. test zob: accessible.
  2. OS = <!DOCTYPE html
  3. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
  6. <head>
  7. <title>Untitled Document</title>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9. </head>
  10. <body>
  11.       <FORM ACTION="insert_new-host.pl" METHOD=POST>
  12.       <H1><DIV ALIGN="center">Enregistrement d'un nouveau client</DIV></H1>
  13.       Serveur client <INPUT TYPE="text" NAME="new_host" SIZE=25  value="zob" readonly="readonly"></BR>
  14.       OS <INPUT TYPE="text" NAME="host_os" SIZE=25  value="" readonly="readonly"></BR>
  15.       DESCRIPTION <INPUT TYPE="text" NAME="host_comment" SIZE=30 >
  16.       <P>
  17.       <INPUT TYPE="submit" VALUE="Valider">
  18.       <INPUT TYPE="reset" VALUE="Effacer">
  19.       </FORM>
  20. </body>
  21. </html>


 
 
Mon script bash se termine comme ceci:

Code :
  1. CMD="uname"
  2. OS=`ssh "$USER"@"$HOST" "$CMD" | sed -n '$p'`
  3. echo -n $OS


 
si je m'amuse a mettre "echo ESSSSSSSSSAAAAI", et bien cette fois ci la variable $OS est bien interpreté dans le navigateur.
 
Je seche ...
 
 
PS: je me penche aussi sur NET::SSH::Perl

Reply

Marsh Posté le 17-03-2009 à 02:44:59   

Reply

Marsh Posté le 17-03-2009 à 07:46:55    

que te donne la log d'apache (je suppose que ton serveur web est apache) ?
et oui penches toi sur Net::SSH car il n'est pas recommandé de lancer des commandes OS pour des questions de portabilité

Reply

Marsh Posté le 17-03-2009 à 23:05:54    

oki c'est reglé, il me fallait suexec pour recuperer ma clé ssh :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed