2017-11-27 7 views
0

シェルでphp変数を渡すにはどうすればよいのですか?ここで シェルでphp変数を渡してから、自分のページのHTMLの値を返す方法は?

は私のhtmlページには何も返さないように私のコードです:

私のbashスクリプト:PHPで

#!/bin/bash 
echo "Hello $UserName" 

私のhtml:あなたがに引数を渡す

<!DOCTYPE html> 
<html lang="fr"> 
<head> 
    <meta charset="utf-8"> 
    <title>Project</title> 
    <style> 

    </style> 
</head> 
<body> 
    <?php 
    if(isset($_POST['submit'])) 
    { 
     $UserName = $_POST['UserName']; 
     $output = shell_exec("script.sh $UserName"); 
     echo $output; //doesn’t work 
    } 
    ?> 


    <form action="" method="post"> 
    <input type = "text" name = "UserName" > 
    <input type = "submit" name="submit" value="Launch"> 
    </form> 

</body> 
</html> 
+0

は動作しません。 'Hello'だけを返しますか?あなたのコードは[command injection](https://www.owasp.org/index.php/Command_Injection)にも広く開いていますが、bashでは '$ User'ではなく' $ 1'を使います。 –

答えて

0

シェルスクリプトは、"$1""$2"などのようにアクセスする必要があります。

だからあなたのシェルスクリプトは次のようになります。あなたは、注射を避けるために、あなたの引数をエスケープする必要があることから、別に

#!/bin/bash 
echo "Hello $1" 

$output = shell_exec("script.sh " . escapeshellarg($UserName)); 

はまたshell_exec()があなたのトラブルシュートを助けるために多くを提供していないことに注意してください。代わりにexec()を使用するとよいでしょう。