【发布时间】:2013-05-29 10:21:40
【问题描述】:
我有一个非常简单的 html / php 代码。它只有一个文本区域和一个发送按钮。
在文本区域中,我有一个文本,在文本的开头有 3 个新行。我需要那些换行符。
之后,当我提交表单时,由于某种原因,它是文本开头的换行符的第 1 章。当我再次发送它时,它会再次发送,删除换行符,而内容的开头不是文本。
为什么会这样? 我用 FF、Chrome、Safari、Oprea、IE 试了一下,结果都一样。
您可以使用以下代码对其进行测试:
<?php
if (empty($_POST["operation"])) {
//Init the textarea value if form not submitted
$_POST["message"] = "\r\n\r\n\r\nThis is\r\na multiline text";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Multiline test</title>
<meta charset="UTF-8" />
</head>
<body>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<textarea style="width: 200px; height: 150px;" name="message"><?php echo $_POST["message"]; ?></textarea>
<input type="submit" value="send" />
<input type="hidden" name="operation" value="send" />
</form>
</body>
【问题讨论】:
-
如果可能的话,您应该考虑使用 CSS 来定位消息。这可能也会更容易。
-
当换行符之前的第一个字符是 f.e. 时不会发生这种情况。空间。我不知道为什么会发生这种情况,并且在快速查看后无法在 HTML 规范中找到任何信息。您可以通过编写将 textarea 填充到下一行开头的 PHP echo 语句来防止这种情况发生。
-
css 不是一个选项。这是一个模块,当您想回复消息时。我想添加 3 行来分隔引用的消息。
-
如果没有任何帮助,我会添加一个额外的空间,但这对我来说是难以置信的。我发布了 3 个换行符,我想取回 3 个换行符。也许这是一个 apache 问题?
-
@lolka_bolka 不。浏览器就是这样工作的。