在数据库中存储带有函数的javascript代码

时间:2014-06-04 14:25:46

标签: javascript php sql store

我多次尝试存储以下js代码,但是它被破坏了并且db没有完全存储它,尽管我试图存储一个没有功能的js代码,或者任何其他代码代码就像一个PHP代码... java代码,它存储正常

我使用mysqli_real_escape_string,准备stmt,htmlentities ...........和所有方法,但什么都没发生

<script type="text/javascript">
    function youtubeFeedCallback(json){
        document.write('<img src="' + json.data.thumbnail.sqDefault + '">');
    }
</script>
<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=jsonc&callback=youtubeFeedCallback"></script>

代码存储在db中,如下所示:

&lt;script type=&quot;text/javascript&quot;&gt;<br />
    function youtubeFeedCallback(json){<br />
        document.write('&lt;img src=&quot;'   json.data.thumbnail.sqDefault   '&quot;&gt;');<br />
    }<br />
&lt;/script&gt;<br />
&lt;script type=&quot;text/javascript&quot; src=&quot;http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2

使用ajax函数添加数据的js代码

$(document).ready(function(){





$("#submit").click(function() {

    var ans_body = escape($("#ans_body").val());
    var q_id = $("#q_id").val();
    var dataString = 'ans_body=' + ans_body + '&q_id=' + q_id;

    if(ans_body=='')
     {
    alert('برجاء كتابة الاجابة صحيحة');
     }
    else
    {
    $("#flash").show();
    $("#flash").fadeIn(400).html('<img src="loader.gif" align="absmiddle">&nbsp;<span class="loading">Loading answers...</span>');
$.ajax({
  type: "POST",
  url: "includes/submit_comment.php",
  contentType: "application/x-www-form-urlencoded;charset=utf-8",
   data: dataString,

  cache: false,
  success: function(html){

  $("ol#update").append(html);
  $("ol#update li:last").fadeIn("slow");
    document.getElementById('ans_body').value='';
    $("#ans_body").focus();

  $("#flash").hide();

  }
 });
}
return false;
    });





    })

2 个答案:

答案 0 :(得分:0)

看起来代码被截断,DB字段是否足以存储整个函数?对于&lt; &gt;&quot<br />事物,这些只是html实体,当您提取函数时,您可以将它们切换为等效的代码( &lt;,&gt;,&#34;,换行符)

答案 1 :(得分:0)

我解决了它

问题在于ajax函数需要在发送请求之前将特殊字符作为html代码转义 所以要解决这个问题 使用ajax函数发送数据时使用转义函数

var ans_body = escape($("#ans_body").val());