首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >\r\n添加到文本字段会导致PHP/HTML表单

问\r\n添加到文本字段会导致PHP/HTML表单
EN

Stack Overflow用户
提问于 2013-01-29 12:25:16
回答 1查看 899关注 0票数 1

我在一个表单中有一个文本区域,它可以做到这一点:

代码语言:javascript
复制
<textarea rows="4" name="message"></textarea>

在PHP中,当表单被提交时,会发生这种情况:

代码语言:javascript
复制
 $text_form = $database -> escape_value($_POST['message']);

然后使用PHPMailer将其作为电子邮件消息的一部分发送:

代码语言:javascript
复制
$message .= '<p style="font-family: Arial, verdana, sans-serif;"><strong>Brief Message</strong>: ' . $text_form . '</p>';

最后,上面提到了我的数据库方法:

代码语言:javascript
复制
public function escape_value($value) {
    if ( $this->real_escape_string_exisits ) {
    if ( $this->magic_quotes_active ) { $value = stripslashes( $value ); }
        $value = mysql_real_escape_string($value);
    } else {
        if (!$this->magic_quotes_active ) { $value = addslashes( $value ); }
    }
    return $value;      
}

上述方法实际上是从Lynda.com教程中逐行复制而来的。

现在,在电子邮件中,如果用户在文本字段中单击return,他将收到以下内容

这是第一行。现在,我将在此处按return。\r\n这是新行

为什么要添加\r\n?我明白这些是什么意思,但是为什么它们会出现呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-29 12:31:03

来自PHP docs

mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,该函数将反斜杠添加到以下字符前面:\x00、\n、\r、\、‘、“和\x1a。

因此,您的字符串现在包含两个反斜杠和两个字母,而不是换行符。

现在的问题是稍后如何处理$value。如果您将其插入到SQL语句中,它就应该是这样的;如果您直接将它用于邮件,它将使用文字\r\n而不是回车符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14575638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档