如何将文本从textarea发送到文件

时间:2013-07-30 09:03:43

标签: php html

我想知道如何让用户在textarea中输入一些文本,然后当他按下保存按钮时,他输入的文本会保存在文件中,这是我的代码:

<?php
header("location: add/Project.html" );

 $handle = fopen("Project.html", "a");
 foreach($_POST as $value) {

 fwrite($handle, $value);
 }
 fclose($handle);
exit;
?>

此代码有效,但仅使用<input>,例如这里是我的HTML代码:

<form action="add.php" method="post">
<textarea type="text" name="code" id="code" value="" ></textarea>
<input type="text" name="code" id="code" value="" /><input value="Submit" tabindex="4"   type="submit" >
 </form>

它只会输出<input>中写的文字 你能帮帮我吗?

4 个答案:

答案 0 :(得分:1)

您的textareainput具有相同的名称。要修复,请给它们不同的名称:

<form action="add.php" method="post">
    <textarea type="text" name="codetextarea" id="codetextarea" value="" ></textarea>
    <input type="text" name="codeinput" id="codeinput" value="" />
    <input value="Submit" tabindex="4"   type="submit" />
 </form>

(它们也有相同的id s,在XHTML中甚至是非法的)

答案 1 :(得分:0)

如果你有相同名称的输入(并且该名称不以[]结尾),那么PHP将忽略除了其中一个之外的所有内容(据我所知,这使得它在表单中是唯一的处理图书馆)。给他们不同的名字。

或者,将它们重命名为code[],PHP将使用数组填充$_POST['code']。然后遍历那个数组而不是$_POST本身。

答案 2 :(得分:-1)

我上面的两个答案都有重点。此外,value中不需要<textarea>属性,因为textarea的值来自打开和关闭的<textarea></textarea>标记内的任何内容。它与<input>标签不同。

此外,在打开文件时,您应该指定另一个名为binary(字母b)的“阅读”属性。

所以看起来应该是

$handle = fopen('path_to_file.extension','ab');

这是出于兼容性目的

答案 3 :(得分:-1)

试试这个

<form action="add.php" method="post">
<textarea  name="codetextarea" id="codetextarea" value="" ></textarea>
<input type="text" name="codeinput" id="codeinput" value="" />
<input value="Submit" tabindex="4"   type="submit" />
</form>