我正在研究一個允許用戶創建html模板並保存它們的應用程序。用戶可以使用不同的組件,如文本,圖像等,並創建html頁面。將內容保存到mysql數據庫時使用撇號「'」問題
問題:我現在面臨的問題是,當用戶輸入一些文字與撇號'
,我得到一個MySQL錯誤(顯然應該)。所以,我說mysql_real_escape_string
給變量傳遞前它適用於查詢。它的工作原理,但我希望數據爲用戶編輯該網站。當我嘗試將其取回時,返回的內容添加了斜槓時出現錯誤。
我無法使用stripslashes
,因爲我的內容可能會有斜槓作爲用戶輸入的文本的一部分。
這是怎麼把它添加到數據庫:
$revisionContent = mysql_real_escape_string($_POST['txtComp']);
這是查詢
$query = "insert into revision (userId,revisionContent,webId,pageId,status,saveType,dateAdded) values ('".$_SESSION['gogiUserId']."','$revisionContent','$webId','$pageId','$status','$saveType','$toDate')";
我想在的JavaScript變量中檢索到的值,所以我不喜歡這樣
var getSavedContent = '<?php echo json_encode($IdLessContent); ?>';
Bu那麼我得到這個錯誤!
SyntaxError: missing ; before statement
[Break On This Error]
...helvetica,sans-serif;\"><strong>Text **Bo'x**(here is the apostrophe)<\/strong><\/span><\/span><\/p>\n<ol>\n...
如果我刪除json_encode
它給了我這個錯誤的語法。
SyntaxError: syntax error
[Break On This Error]
var getSavedContent = <div style="z-index: 1001; height: 241px; width: 725px; to...
這是密切相關的SQL注入攻擊,重大安全隱患。閱讀它。 – leftclickben 2013-03-01 09:09:45
如果我用'mysql_real_escape_string'轉義我的變量,它應該刪除injection.Right的可能性? – KillABug 2013-03-01 09:11:46
您應該使用'作爲撇號。請參閱http://www.tedmontgomery.com/tutorial/htmlchrc.html – 2013-03-01 09:12:49