Inviare dati da un form usando php bash ed Aruba

Per eseguire uno script php su hosting aruba che richiama uno script bash devi inserire lo script nella dir

/web/htdocs/www.recapriata.gov.it/home/cgi-bin/ciao.sh

Il codice dello script bash è (esegue la somma degli argomenti passati tramite form):

#!/bin/bash
a=$1
b=$2
echo ‘somma = ‘$((a+b))

exit 1

Il codice del pagine php che contiene il form è (pagina.php):

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Add new customer </title>
</head>

<body>

<h1>Inserimento dati</h1>

<form method=”post” action=”web-add_new_customer.php”>

Primo numero: <br />
<input type=”text” name=”NUMERO_UNO” size=”35″ />
<br />

Secondo numero: <br />
<input type=”text” name=”NUMERO_DUE” size=”35″ />
<br /> <br />

<input type=”submit” value=”Invia” />
<br />
</form>

</body>
</html>

Il codice della script richiamato è (calcola_con_script_bash.php):

<?php
$NUMERO_UNO = $_POST[‘NUMERO_UNO’];
$NUMERO_DUE = $_POST[‘NUMERO_DUE’];

if(empty($NUMERO_UNO ) || empty($NUMERO_DUE )) {
echo “<h2>Compila tutti i campi</h2>\n” ;
die (“Torna indietro per compilare.”);
}

echo “<h2>Inserisci le informazioni necessarie:</h2>”;
echo “<b>Il primo numero inserito è:</b><br><br>”;
echo $NUMERO_UNO;
echo “<br><br><b>Il secondo numero inserito è:</b><br><br>”;
echo $NUMERO_DUE;
echo “<br><br/>”;
echo “<b>Comando:</b><br><br/>”;

$cmd = “/web/htdocs/www.dominiosito.it/home/cgi-bin/ciao.sh escapeshellarg($NUMERO_UNO) escapeshellarg($NUMERO_DUE)”;

echo(“Commando testuale = ” . $cmd . “<br/>\n”);
echo(“<b>Dump della variabile con var_dump</b><br/>\n”);
var_dump($cmd);

echo(“<br/>\n”);

exec(“/web/htdocs/www.dominiosito.it/home/cgi-bin/ciao.sh $NUMERO_UNO $NUMERO_DUE”, $output, $output2);

echo(“<br/>\n”);
echo(“Uscita array = ” . print_r($output) . “<br/>\n”);
echo(“Uscita = ” . $output2 . “<br/>\n”);
?>

Uscita array stampa l’array che contiene il risultato contenuta in $output

output2 contiene un valore numerico che segan se lo script è stato eseguito correttamente in questo caso restituisce 1 (vedi script bash)

 

 

 

 

You must be logged in to post a comment.