为什么我不能从C ++向PHP发送多个参数?

时间:2016-11-21 21:01:20

标签: c++

我想将数据从C ++保存到PHP,这就是我所拥有的

    string cmd = "wget localhost/tem1.php?t=1&date=1&time=1";
    system((const char*) cmd.c_str());

你可以看到我想发送参数t,日期和时间,但它只发送t而没有其他两个参数,这里是输出:

 --2016-11-21 20:56:45--  http://localhost/tem1.php?t=1
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5 [text/html]
Saving to: 'tem1.php?t=1'

为什么只需要t?请帮我解决这个问题 * 注意 : 当我在链接栏中写入它时,它将成功插入数据 谢谢

1 个答案:

答案 0 :(得分:3)

如果这是在Unix / Linux系统上,原因是&符号&system通过执行shell

执行您的命令
  

system()库函数使用fork(2)创建一个子进程,该进程使用execl(3)执行命令中指定的shell命令,如下所示:

execl("/bin/sh", "sh", "-c", command, (char *) 0);
     

system()在命令完成后返回。

shell将&解释为将命令放入后台。要防止这种情况,您必须使用引号

包装参数
string cmd = "wget \"localhost/tem1.php?t=" + to_string(temperature) + "&date=" + date + "&time=" + time + "\"";

这告诉shell单独留下&符号。