-2

我在将 textarea 保存到文件时遇到问题。我使用 POST 方法将表单发送到另一个页面,然后在下一页中我无法将 textarea 内容包含在文件中我不确定是什么问题。

有什么想法吗?

这是两个页面: page1:

<!DOCTYPE HTML>
<html>
<head>
    <title>Save</title>
</head>

<body>
    <form action="page2.php" method="post">
    <span>name:</span>
    <input type="text" name="name"><br>
    <span>file extension: </span>
    <select name="ext" id="ext">            
        <option value=".txt">.txt</option>
        <option value=".doc">.doc</option>          
    </select>
    <textarea name="txt1" id="txt1" cols="15" rows="10"></textarea>
    <br>
          <input type="submit" name="submit"  id="submit" value="Save">
          </form>
          <br>
</body>

  </html>

-page2.php

$txt1 = $_POST['txt1']; //textarea
$name = $_POST['name'];
$ext = $_POST['ext'];  //choose from multiple extensions
if ($ext == '.txt')    // In case if I want to add more than extension.
{   
    $file = "'. $name$ext.'" ;
    $output = "$txt1";
    file_put_contents($file, $output);
    $text = file_get_contents($file);

    header("Content-Description: File Transfer");
    header("Content-Type: application/text/plain");
    header("Content-Disposition: attachment; filename=".basename($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
4

5 回答 5

0

尝试在你的 textarea 中使用 wrap 元素

<textarea name="txt1" id="txt1" cols="15" rows="10"></textarea>

添加包装

<textarea name="txt1" id="txt1" cols="15" rows="10" wrap="virtual"></textarea>

你也可以使用 wrap: off, hard, soft and physical

在您的数据库中确保正确定义字段 txt1(即键入文本)。

于 2014-09-13T20:11:33.493 回答
0

$file = "'. $name$ext.'";

应该:

$file = $name.$ext;

至少那是我必须改变的才能让它在我的服务器上工作。

于 2013-03-03T07:32:51.453 回答
0

如果没有看到您的 html,我无法确定问题所在。但根据我的经验,当您无法在服务器端访问 POST 变量时,这可能是一个简单的拼写错误。确保表单中的名称属性与您的 POST 变量对齐。只是我的两分钱。

于 2013-03-03T07:35:32.780 回答
0

我不知道你的代码是什么意思,所以,我只是重写它

要在服务器上保存文件,您需要这两行

$name = basename($_POST['name']).'.txt';
file_put_contents($name, $_POST['txt1']);
于 2013-03-03T07:35:51.020 回答
0

您需要向表单添加一个 id,然后将表单 Id 添加到 textarea 元素。例如:

<form action="page2.php" method="post" id="myform">
    <textarea name="txt1" id="txt1" cols="15" rows="10" form="myform"></textarea>
于 2014-03-26T00:54:20.393 回答