\r\n添加到textfield会导致PHP/HTML格式
我在表单中有一个文本区域,可以执行以下操作:\r\n添加到textfield会导致PHP/HTML格式,php,html,forms,Php,Html,Forms,我在表单中有一个文本区域,可以执行以下操作: <textarea rows="4" name="message"></textarea> 然后使用PHPMailer将其作为电子邮件的一部分发送: $message .= '<p style="font-family: Arial, verdana, sans-serif;"><strong>Brief Message</strong>: ' . $text_form . '</p
<textarea rows="4" name="message"></textarea>
然后使用PHPMailer将其作为电子邮件的一部分发送:
$message .= '<p style="font-family: Arial, verdana, sans-serif;"><strong>Brief Message</strong>: ' . $text_form . '</p>';
上述方法实际上是从Lynda.com教程中逐行复制的
现在在电子邮件中,如果用户在文本字段中点击return,他会得到这个消息
这是第一行。现在我将按return键。\r\n这是新行
为什么要添加\r\n?我明白这些是什么意思,但它们为什么会出现?来自:
mysql\u real\u escape\u string()调用mysql的库函数mysql\u real\u escape\u string,它将反斜杠前置到以下字符:\x00、\n、\r、\、'、”和\x1a
因此,您的字符串现在包含两个反斜杠和两个以上的字母,而不是换行符
现在的问题是以后如何处理
$value
。如果将其插入SQL语句中,它应该是这样的;如果直接用于邮件,它具有文本\r\n
,而不是回车换行符。您可以演示如何调用PHP Mailer吗?一些邮件脚本要求您在它们是被调用的。我并没有在数据库中使用这个变量……所以用不同的方法清理它似乎就是答案。谢谢!
$message .= '<p style="font-family: Arial, verdana, sans-serif;"><strong>Brief Message</strong>: ' . $text_form . '</p>';
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;
}