Php 提交表单并将多个表单字段写入文件

Php 提交表单并将多个表单字段写入文件,php,html,forms,input,Php,Html,Forms,Input,我有一个表单代码,可以将用户的电子邮件写入服务器中的.txt文件 下面是我想做的一些事情:让表单有多个变量,比如,一行到name,另一行到email,把表单写在输入文本之前的.txt前缀中,让输出.txt文件在每个变量的内容之间有换行符 这是我目前的代码 <?php if(isset($_POST['submit'])) { $email = $_POST['email']; $file = fopen("emaillist.txt","a+"); fwrite($fil

我有一个表单代码,可以将用户的电子邮件写入服务器中的.txt文件

下面是我想做的一些事情:让表单有多个变量,比如,一行到name,另一行到email,把表单写在输入文本之前的.txt前缀中,让输出.txt文件在每个变量的内容之间有换行符

这是我目前的代码

<?php
if(isset($_POST['submit']))
{
   $email = $_POST['email'];
   $file = fopen("emaillist.txt","a+");
   fwrite($file,$email);
   fclose($file); 
   print_r(error_get_last());
}
?>
<form action= "" method="post" name="form">
   Email:
   <input type="email" name="email">
   <br>
   <br>
   <input type="submit" name="submit" value="submit">
   <br>
</form>

你能帮我吗?谢谢大家。

您可以在表单中添加其他输入。在您的代码中,您必须输入电子邮件地址。只需为名称添加一个。字段的name=xxx是PHP中$\u POST['xxx']中可以用来获取另一行信息的键

我理解你的问题了吗?我如何在输入文本之前用.txt前缀编写表单?更正您希望在文件中有输出,如电子邮件:x@x.x?

若要添加换行符,可以写入\n如果使用Windows系统,请在字符串中使用

代替fopen、fwrite和fclose,您可以使用file\u put\u内容,这使代码更易于阅读

您可以尝试以下代码:

<?php
if(isset($_POST['submit']))
{
  $name = $_POST['name'];
  $email = $_POST['email'];
  $new_content = "\r\nName: " . $name;
  $new_content .= "\r\nEmail: " . $email;
  file_put_contents('emaillist.txt', $new_content, FILE_APPEND);
  print_r(error_get_last());
}
?>
<form action="" method="post" name="form">
  Name:
  <input type="text" name="name"><br>
  Email:
  <input type="email" name="email">
  <br>
  <br>
  <input type="submit" name="submit" value="submit"><br>
</form>

请尝试以下代码

<?php
    if(isset($_POST['submit']))
    {
    $email = $_POST['email'];
    $name=$_POST['name'];
    $variable = $name ." ". $email.  PHP_EOL;
    $file = fopen("emaillist.txt","a+");
    fwrite($file,$variable);
    fclose($file); 
    print_r(error_get_last());
    }
    ?>
    <form action= "" method="post" name="form">
    Email:
    <input type="email" name="email">
    <br>
    Name:
    <input type="name" name="name">
    <br>
    <br>
    <input type="submit" name="submit" value="submit"><br>
    </form>

回答很好,但我建议使用PHP_EOL而不是\r\n或\n它是更好的实践,是跨平台的,而且在我看来,更易于阅读和理解。另外,fopen、fwrite和fclose没有什么错。事实上,由于在每次处理一个字段时使用类似流的系统可能会对这种情况有所帮助,所以这可能是错误的cleaner@Markasoftware好的一点,唯一的问题是PHP_EOL将使用服务器的默认行结尾。因此,如果他使用Linux服务器,但在Windows机器上打开他的.txt文件,就会出现问题。这就是为什么在这种情况下我更喜欢\r\n这种方式。第二点您是对的——这并没有错,我只是认为对于PHP初学者来说,单个函数调用可能更容易理解。但这似乎是一个品味的问题;