我有问题将textarea保存到文件中。我使用POST方法将表单发送到另一页然后,在下一页我不能包含文件的textarea内容我不知道是什么问题。
有什么问题吗?
以下是两页: 第1页:
<!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;
}
答案 0 :(得分:0)
$file = "'. $name$ext.'";
应该是:
$file = $name.$ext;
至少我必须改变这一点才能让它在我的服务器上运行。
答案 1 :(得分:0)
没有看到你的HTML,我无法确定问题是什么。但是我的经验是,当你在服务器端访问POST变量时遇到麻烦,这可能是一个简单的拼写错误。确保表单中的名称属性与POST变量对齐。只是我的两分钱。
答案 2 :(得分:0)
我不知道你的代码是什么意思,所以,我只是重写它
要在服务器上保存文件,您需要这两行
$name = basename($_POST['name']).'.txt';
file_put_contents($name, $_POST['txt1']);
答案 3 :(得分:0)
您需要向表单添加id,然后将表单ID添加到textarea元素。例如:
<form action="page2.php" method="post" id="myform">
<textarea name="txt1" id="txt1" cols="15" rows="10" form="myform"></textarea>
答案 4 :(得分: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和physical
在您的数据库中,确保正确定义了字段txt1(即键入文本)。