Php exec() with get or post



嗨,有这个问题

  1. 我将ajax发布到文件insert.php
  2. 我在insert.php上生成exec((以发送.php

我需要通过POST或使用exec((从insert.php到send.php 获取数据

这是我的代码,但我什么都不通过

$data = array(
'user' => '1001',
'area' => 'any',
'type' => 'any',
'max' => '100'
);
$query = http_build_query($data);
shell_exec("php " . ROOT . "/send.php  " . $query . " &> /dev/null &");

在send.php上,我用简单的电子邮件接收信息print_r($_REQUEST(;但我刚收到helloArray((

请帮助任何解决方案

在@barmar 的帮助下

$data = array(
'user' => '1001',
'area' => 'any',
'type' => 'any',
'max' => '100'
);
$query = escapeshellarg(http_build_query($data));
exec("php " . ROOT . "/mail.php  " . $query . " &> /dev/null &");

发送.php

parse_str($argv[1], $data);
$data['user'];
$data['area'];
$data['type'];
$data['max'];

您需要转义$query,因为它可能包含一些对shell有特殊意义的字符。

$query = escapeshellarg(http_build_query($data));

send.php中,使用$argv[1]来获得$query的值。可以使用parse_str($argv[1], $data)将其中的参数值提取到$data数组中,然后使用$data['area']获取该参数。

相关内容

  • 没有找到相关文章