Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将GET变量传递给shell_exec_Php_Shell_Get_Mamp - Fatal编程技术网

在PHP中将GET变量传递给shell_exec

在PHP中将GET变量传递给shell_exec,php,shell,get,mamp,Php,Shell,Get,Mamp,我试图在我的服务器上运行一个PHP shell脚本,它使用youtube dl下载视频。我的代码如下所示: <form action="download.php" method="get"> <input type="text" name="link"><br> <input type="submit"> </form> <?php $link = escapeshellarg($GET["link"]); $output =

我试图在我的服务器上运行一个PHP shell脚本,它使用
youtube dl
下载视频。我的代码如下所示:

<form action="download.php" method="get">
<input type="text" name="link"><br>
<input type="submit">
</form>
<?php
$link = escapeshellarg($GET["link"]);
$output = shell_exec('/Applications/MAMP/cgi-bin/youtube-dl ' .$link. ' 2>&1');
echo "<pre>$output</pre>";
?>
"; ?> 因此,当我在表单中插入链接时,它应该将链接传递给shell_exec并使用此链接运行命令,但我得到的是:

shell_exec("/Applications/MAMP/cgi-bin/youtube-dl {$link} 2>&1");
这意味着该命令没有收到来自GET的链接。我如何解决此问题?

试试这个

$link = escapeshellarg($GET["link"]);
改变


并确保您在
$\u GET[“link”]

中获取url,GET参数是通过$\u GET-variable访问的。请注意“GET”前面的下划线


您在$link变量中得到了什么?这似乎可行,但我现在遇到了另一个错误,
TypeError:execv()arg 2必须只包含字符串
$link = escapeshellarg($GET["link"]);
$link = escapeshellarg(urldecode($_GET["link"]));