我試圖使用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