如何将在HTML表单中输入的字符串保存到文本文件


How to save string entered in HTML form to text file

>我有一个非常基本的PHP文件。 我想有两个用于用户输入的文本框和一个提交按钮。 用户将输入他们的名字和姓氏,然后我想使用从字段 1 和字段 2 输入的数据附加或创建一个 TXT 文件。

可能我的做法是错误的。 我将发布我一直在修补的两种方式。

<html>
 <head>
  <title>Field1 & 2</title>
 </head>
 <body>
  <form>
  What is your name?<br>
  <input type="text" name="field1"><br>
    <input type="text" name="field2"><br>
   <input type="submit" value="Submit">
  </form>
 <?php
$txt= $_POST['field1'].' - '.$_POST['field2']; 
$var_str3 = var_export($txt, true);        //is this necessary?
$var3 = "$var_str3";                       //is this necessary? 
file_put_contents('fields.txt', $var3.PHP_EOL, FILE_APPEND);
?>
 </body>
    </html>

我不知道如何将字段 1 和字段 2 中的数据获取到字符串变量中。

我也搞砸了使用这个php而不是上面列出的部分

  <?php
 $txt= "data.txt";
 if (isset($_POST['field1']) && isset($_POST['field2'])) {
$fh = fopen($txt, 'a'); 
    $txt=$_POST['field1'].' - '.$_POST['field2']; 
   fwrite($fh,$txt); // Write information to the file
   fclose($fh); // Close the file
 }
?>

你应该了解HTML表单和PHP表单处理。

在您的代码中,您必须使用表单 HTTP 方法。并且表单数据必须发送到 PHP 文件进行处理。

在此代码中,我使用HTTP POST方法,您也可以使用GET方法,结果将是相同的。这两种方法用于收集表单数据。而 php 文件名是 "action.php" .

索引.html

  <html>
     <head>
      <title>Field 1 & 2</title>
     </head>
     <body>
        <form action="action.php" method="post">
          What is your name?<br>
          <input type="text" name="field1"><br>
            <input type="text" name="field2"><br>
           <input type="submit" value="Submit">
        </form>
     </body>
    </html>

行动.php

<?php
 $path = 'data.txt';
 if (isset($_POST['field1']) && isset($_POST['field2'])) {
    $fh = fopen($path,"a+");
    $string = $_POST['field1'].' - '.$_POST['field2'];
    fwrite($fh,$string); // Write information to the file
    fclose($fh); // Close the file
 }
?>

让我们从 http://www.w3schools.com/html/html_forms.asp 中获取一个片段

<form action="action_page.php" method="post">
  First name:<br>
  <input type="text" name="firstname" value=""><br>
  Last name:<br>
  <input type="text" name="lastname" value=""><br><br>
  <input type="submit" value="Submit">
</form>

请注意第一行:在表单提交时,php脚本被称为:action_page.php

action_page.php是带有表单和嵌入式 PHP 脚本的网页。 action_page.php显示空窗体,然后处理提交的数据。

在第一行还指定使用POST方法发送提交的数据。

php 部分将如下所示:

<?php
if( isset($_POST['firstname'] ) && isset( $_POST['lastname'] ) )
{
    $txt= $_POST['firstname'].' - '.$_POST['lastname'] . PHP_EOL; 
    file_put_contents('fields.txt', $txt, FILE_APPEND);
}
?>

之所以存在if语句,是因为第一次加载脚本action_page.php时,其目的只是显示表单,不接收任何 POST 数据。

当用户提交表单时,脚本将接收数据并存储到文件中。

脚本还将(使用此方法(再次显示一个空表单,准备提交另一个条目。

您可以重新排列内容以拥有两个网页:一个只有表单,另一个带有"谢谢"消息和数据处理 php 脚本。