我试图使用Chrome和Safari将数据输入到我的mysql数据库时遇到了一些麻烦。当我从这些浏览器输入数据时,发送到数据库的数据会显示textarea字段边缘的位置。因此,有一条长长的文本被打破了几行。Chrome和Safari中的Textarea,发送到服务器的所有可见换行符
我运行stripslashes
和strip_tags
当数据进入数据库的。它在FF & IE中正常工作。
请参阅下文,明白我的意思:
文本输入字段:
http://www.redcontour.com/query/textarea_field.png
铬& Safari浏览器DB条目:
http://redcontour.com/query/Chrome_Safari_db_data.png
FF & IE DB条目:
http://redcontour.com/query/FF_IE_data.png
这样做的问题是,我并不总是将数据用于与最初放入的textarea盒子类似宽度的div中,因此它看起来很奇怪没有运行div整个宽度的数据。
任何想法?
POST UPDATED - 下面是在数据被发送到数据库之前的验证,上面的例子是我输入的数据,在浏览器的两个实验中我都没有做过任何不同的事情,所以我没有不知道链接断开如何进入。
// Create a function for escaping the data.
function escape_data ($data) {
global $dbc; // Need the connection.
if (ini_get('magic_quotes_gpc')) {
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $dbc);
} // End of function.
// Check for about.
if (empty($_POST['about'])) {
$a = FALSE;
$message .= '<p>About you description missing.</p>';
} else {
$a = escape_data(strip_tags($_POST['about']));
}
用于输入数据的HTML代码。
<textarea class="ed_text_box" name="about" wrap="physical" rows="5" onKeyDown="textCounter(document.details.about,document.details.ed_text_box,500)" onKeyUp="textCounter(document.details.about,document.details.ed_text_box,500)">I'm a traveller at heart, having lived in Portugal and England. Love camping and getting away from it all, whether it's walking the Cornish coast or canoeing in the Brecon Beacons.</textarea>
文本计数器只是停止用户把太多的副本放到字段中,我没有测试它,我得到了同样的问题。 CSS也在下面,所以所有的信息都可以在这篇文章中找到。
.ed_text_box {width:394px; border:1px solid #CCCCCC; padding:2px 2px 2px 2px; margin:0 0 20px 0; font-size:12px; font-family:Verdana, Arial, SunSans-Regular, Sans-Serif; font-weight:normal; color:#564b47;}
任何帮助非常感谢。
1)如果这是您所关心的问题,请尝试并避免使用单间隔字体(如第二张图像中的文本)。 2)有没有任何' 泄漏在那里? ' '是一个非破坏空间,一些浏览器可能会将它视为不会中断的内容,因此与它们分离的多个单词可能会换行到下一行。 – DaveRandom 2012-01-08 16:54:46
还有其他事情正在发生。你的问题是文本中有换行符。我认为它们不太可能被Chrome/Safari添加。用户输入它们的可能性更大,或者您的代码以某种方式添加了它们。你能证实这一点并更新你的问题吗? – 2012-01-08 16:59:18
我已经更新了一些信息。这发生在网站上的所有textareas上,尽管它们都使用相同的代码结构。 – 2012-01-08 17:16:11