如何获取文本框的输入,然后使用PHP将其写入.txt文件?

时间:2019-01-26 21:25:43

标签: php html

原始: 我试图使PHP获得输入到文本框中的输入,并将其写入name.txt。我还收到一条错误消息,内容为“预期的标签名称。代替。”在第6行。

<html>
    <body>
        <p>Enter name here:</p>
        <input type="text" id="name"/>
        <button onclick="[activate PHP]">Enter</button>
        <?php
            $fp = fopen('name.txt', 'w');
            fwrite($fp, '[name entered]');
            fclose($fp);
        ?>
    </body>
</html>

我不熟悉PHP,因此请解释您回答时固定代码的作用。

新功能: 这是@Vlad Gincher制作的。问题是,代码没有创建.txt文件,这使我相信页面加载后PHP就会立即执行。提交表单后,是否可以激活PHP?

<?php
  if(isset($_POST["textareaValue"])) {
    $fp = fopen('name.txt', 'w');
    fwrite($fp, $_POST["textareaValue"]);
    fclose($fp);
  }
?>
<html>
  <body>
    <p>Enter name here:</p>
    <form method="post">
      <input type="text" id="name" name="textareaValue" />
      <input type="submit" value="Enter" />
      </form>
  </body>
</html>

再次,我对PHP缺乏经验,这可能是我的错误。

2 个答案:

答案 0 :(得分:1)

PHP在服务器端运行。服务器完成后,它将输出返回给客户端。在这一点上,您不能使用PHP,但是可以强制客户端发送另一个HTTP请求,以便激活PHP。

这里是运行代码,检查客户端是否向服务器发送了信息,如果是,则将信息添加到文件中。如果没有,它什么也不做。

我正在使用HTML的form元素来告诉浏览器使用post将信息发送回服务器。然后,我可以使用PHP的$_POST以及我想从(textareaValue)获取数据的输入名称来获取值

<?php
  if(isset($_POST["textareaValue"])) {
    $fp = fopen('name.txt', 'w');
    fwrite($fp, $_POST["textareaValue"]);
    fclose($fp);
  }
?>
<html>
  <body>
    <p>Enter name here:</p>
    <form method="post">
      <input type="text" id="name" name="textareaValue" />
      <input type="submit" value="Enter" />
    </form>
  </body>
</html>

答案 1 :(得分:0)

呈现网页(显示给用户)后,PHP完成。 PHP无法与用户进行交互-为此,您需要(a)将HTML表单提交到.php文件(甚至包含该表单的文件),或者-且这种方式流行得多天-使用AJAX的javascript。

这是讨论两者的另一个答案:

How can I make, when clicking a button, send an email with the data included from the form?

HTML表单被“提交”到后端PHP文件,该文件从表单字段接收数据。每个表单字段在HTML标记上都有一个name=属性-成为变量名称,而HTML元素的内容成为变量的数据。

ajax发生了非常相似的事情,除了它更灵活(HTML表单系统非常严格/静态),而且(最重要的是)网页不需要刷新。