使用exec()附加变量

时间:2015-12-24 18:25:31

标签: php exec

<form action="index.php" method="POST">
<input name="field1" type="text" />
<input type="submit" name="submit" value="Save Data">
</form>

<?php
    field=$_POST["field1"]
    exec('command 2>&1' $output);
    print_r($output);
?>

我试图将字段追加到exec的末尾。 Field是可变的,并通过使用html表单从用户获取其值。但是我得到服务器500 error可能是因为我错了。

我试过了:

exec('command 2>&1', $field, $output);
exec('command $field 2>&1', $output);
exec('command 2>&1', .$_POST["field1"]. $output);

如何正确使用?

3 个答案:

答案 0 :(得分:1)

使用shell_exec:

<?php
    field = $_POST["field1"];
    $output = shell_exec("command 2>&1 ". escapeshellarg($field));
    print_r($output);

?>  

答案 1 :(得分:0)

尝试:

exec("command $field 2>&1", $output);

请参阅What is the difference between single-quoted and double-quoted strings in PHP?

但由于该字段来自未经验证的用户输入,因此您应首先将其转义。

exec('command ' . escapeshellarg($field) . ' 2>&1', $output);

答案 2 :(得分:0)

    exec('command ' . escapeshellarg($_POST["field1"]) . ' 2>&1', $output);
    print_r($output);

感谢大家向我的问题发帖子。上面的代码对我有用。