猿问

通过 php 将帖子数据保存到文件中

我正在使用一个简单的 HTML 表单以这种格式发送 http post 请求:key1=value1&key2=value2&key3=value3&key4=value4&key5=value5并且我正在尝试使用PHP将 http post 数据保存到文本文件中


这是我想出的PHP代码:


$data1 = $_POST['key1'] ;

$data2 =$_POST['key2'] ;

$data3 =$_POST['key3'] ;

$data4 =$_POST['key4'];

$data5 =$_POST['key5'];

$fp = fopen('data.txt', 'a');

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

fclose($fp);

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


我究竟做错了什么?


摇曳的蔷薇
浏览 102回答 2
2回答

红颜莎娜

$_GET即使请求方法是 POST,也应使用 来访问查询字符串参数。此外,请求中不存在索引data1、data2、data3、data4、 和。data5fwrite最多接受 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);

宝慕林4294392

改变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.phpPS 如果您的变量是在 URL 查询字符串(而不是请求正文)中发送的,那么您需要使用 $_GET 来检索它们,如下所示:$data1 = $_GET['key1'];$data2 = $_GET['key2'];$data3 = $_GET['key3'];$data4 = $_GET['key4'];$data5 = $_GET['key5'];
随时随地看视频慕课网APP
我要回答