1

我想知道如何让用户在 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> Can you help me please 中的文本!

4

4 回答 4

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 中甚至是非法的)

于 2013-07-30T09:05:10.237 回答
0

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

或者,将它们重命名为code[]PHP 将填充$_POST['code']一个数组。然后循环数组而不是$_POST它本身。

于 2013-07-30T09:05:31.237 回答
-1

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

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

所以它应该看起来像

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

这是出于兼容性目的

于 2013-07-30T09:10:16.797 回答
-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>
于 2013-07-30T09:13:35.773 回答