【问题标题】:Why doesn't PHP accept command with argument $1 [duplicate]为什么 PHP 不接受带有参数 $1 的命令 [重复]
【发布时间】:2012-09-20 17:00:55
【问题描述】:

可能重复:
Making variable from HTML-file work in PHP-file

我有另一个文件(HTML 文件)将参数传递给这个 PHP 文件。它确实如此,我用“echo”检查了它,它抛出了我在 HTML 文件中编写的相同参数,到目前为止,非常好。 PHP 文件如下所示。

<?
       $filepath = "/usr/sbin";
       exec("ONE $search -command $filepath ");
       fopen($filepath, "rw");
?>

命令“ONE”是我为在文件中执行一些“greps”而编写的 bash 脚本,它接受一个参数,即“$search”,实际上它被传递给这个 PHP 文件。如果我将“$search”换成实际的“searchword”,它就像一个魅力。为什么它不接受“$search”作为参数?它似乎只是忽略它并返回一个空白页面,但如果我使用“搜索词”它会返回我想要的内容。

【问题讨论】:

  • 你在哪里定义$search
  • 不是复制品,是精心制作的
  • 它在 HTML 文件中定义为“名称”
    搜索:
  • 那么你定义为$search = $_REQUEST["search"];,那么?
  • 好吧,当我放一行 echo($_POST['search']);它会抛出我从 HTML 页面传递的“搜索词”,所以变量肯定在那里,但它不会成为我的命令的参数:(

标签: php arguments


【解决方案1】:

fopen 中有语法错误(可能是转录错误)。

您的意思是使用$_REQUEST['search'] 而不是$search?通过“将参数传递给此 PHP 文件的 HTML 文件”,我假设您的意思是通过某种链接或异步请求。如果是这种情况,您应该使用escapeshellarg

【讨论】:

【解决方案2】:

看看这个:

exec("ONE {$search} -command {$filepath} ");

有效吗?

【讨论】:

  • {$var} 仅在与其他字符连接时使用。如echo "{$var}s";,避免PHP搜索$vars变量而不是$var。
  • 很好地尝试了你们所有人,但似乎不可能让 PHP 接受该变量作为命令的参数。这是一个谜。
【解决方案3】:
exec("ONE $search -command $filepath ");

尾随空格?

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 2018-09-01
    • 1970-01-01
    • 2021-09-27
    • 2021-07-22
    • 1970-01-01
    • 2020-09-13
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多