我想知道如何让用户在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>
中写的文字
你能帮帮我吗?
答案 0 :(得分:1)
您的textarea
和input
具有相同的名称。要修复,请给它们不同的名称:
<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>