通过php将发布数据保存到文件中

时间:2020-06-21 17:21:37

标签: php html

我正在使用一个简单的HTML表单以cat > chromium.gyp_env <<EOF { "GYP_DEFINES": "OS=ios chromium_ios_signing=0", "GYP_GENERATORS": "ninja,xcode-ninja", } EOF 格式发送http发布请求,并且我正尝试使用 PHP

这是我想到的 PHP 代码:

key1=value1&key2=value2&key3=value3&key4=value4&key5=value5

,但仅创建文件“ data.txt”,而不将任何值添加到文本文件中

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

即使请求方法是POST,也应使用$_GET访问查询字符串参数。

此外,索引data1data2data3data4data5在请求中不存在。

fwrite最多接受3个参数。

最终代码应如下:

<?php

$data1 = $_REQUEST['key1'];
$data2 = $_REQUEST['key2'];
$data3 = $_REQUEST['key3'];
$data4 = $_REQUEST['key4'];
$data5 = $_REQUEST['key5'];
$fp = fopen('data.txt', 'a');
fwrite($fp, implode("\n", [$data1, $data2, $data3, $data4, $data5]));
fclose($fp);

答案 1 :(得分:0)

更改

fwrite($fp, $_POST['data1'], $_POST['data2'], $_POST['data3'], $_POST['data4'], $_POST['data5']);

收件人

fwrite($fp, "$data1,$data2,$data3,$data4,$data5");

您定义的所有“数据”变量都是个人变量,它们不是$ _POST数组的一部分。

并且fwrite期望单个数据字符串而不是一组单独的数据,因此您需要将它们串联在一起。我在它们之间加上了逗号,因此您有一定的机会将它们区分开,但是显然您可以根据自己的要求进行更改。文档:https://www.php.net/manual/en/function.fwrite.php

P.S。如果您的变量是通过URL查询字符串(而不是请求的正文)发送的,则需要使用$ _GET来检索它们,如下所示:

$data1 = $_GET['key1'];
$data2 = $_GET['key2'];
$data3 = $_GET['key3'];
$data4 = $_GET['key4'];
$data5 = $_GET['key5'];