我是PHP的新手,但我想看看这样的事情是否可行。我必须运行一个带有多个参数的shell命令,您可以在这样的HTML论坛上进行更改。
<html>
<body>
<form method="POST" action="">
<input type="text" name="cmd1">
<input type="text" name="cmd2">
<input type="text" name="cmd3">
<input type="text" name="cmd4">
<input type="submit" value="Submit">
</form>
</body>
</html>
它必须运行shell命令,例如 -
shell_exec('example $cmd1, $cmd2, $cmd3, $cmd4')
我不太了解PHP,但是这样可能吗?如果是的话,我怎么能这样做?谢谢!
答案 0 :(得分:1)
是的,您可以执行shell命令,除非您的应用程序以安全模式运行:
http://php.net/manual/en/function.shell-exec.php
正如您所看到的,shell命令作为字符串是唯一可以发送到函数的参数。但是,命令本身可能有许多参数,具体取决于您使用的内容。
该命令只是一个字符串,因此您可以在PHP脚本中以任何方式构建它。只需将表单发布到PHP文件中,然后执行任何需要完成的操作。
E.g:
$cmd = 'myCommand ' . $_POST['cmd1'] . ' ' . $_POST['cmd2'];
shell_exec($cmd);
如果您的每个输入都包含一个命令,那么您必须自己完成每个命令。
BIG WARNING 除非您严格验证输入,否则这可能非常不安全。
答案 1 :(得分:1)
您错过了$_POST
变量与变量$cmd1
,$cmd2
,$cmd3
和$cmd4
可以这样指定:
$cmd1 = $_POST['cmd1'];
$cmd2 = $_POST['cmd2'];
$cmd3 = $_POST['cmd3'];
$cmd4 = $_POST['cmd4'];
然后你还需要知道PHP中的事情concatenated,这是.
使用shell_exec
示例:
shell_exec('example $cmd1, $cmd2, $cmd3, $cmd4');
应该这样写:
shell_exec('example '.$cmd1.', '.$cmd2.', '.$cmd3.', '.$cmd4');