我正在研究一个允许用户创建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