2014-09-30 140 views
0

我试图在shell命令中发送一个变量并在屏幕上获取输出。当我白色ping ping -c 5 google.com它的工作,但是当一个变量$username它不是。为什么我的变量不起作用?PHP + Shell脚本

<html> 
<head> 
<title>Form</title> 
</head> 
<body> 
<form method="post" action="7.php"> 
<input type="text" name="username"> 
<input type="submit"> 
</form> 
</body> 
</html> 

<?php 
$username = $_POST["username"]; 
$result = shell_exec('ping -c 5 $username'); 
echo "<pre>$result</pre>"; 
?> 
+2

这是一个巨大的** **的安全隐患。如果我发布了'; rm -rf /'到你的脚本中? – DaveRandom 2014-09-30 12:13:31

+0

感谢您的信息!我会尽力用它做点什么 – dend 2014-09-30 12:23:56

回答

3

您使用单引号,你需要连接的用户名$或者用双引号

<?php 
$username = $_POST["username"]; 
$result = shell_exec('ping -c 5 ' . $username); 
echo "<pre>$result</pre>"; 
?> 
+0

这是真的。错误的报价。谢谢kaseOga。 – dend 2014-09-30 12:14:41