Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量传递带撇号的文本字符串,是否被截断?_Javascript_Php - Fatal编程技术网

Javascript变量传递带撇号的文本字符串,是否被截断?

Javascript变量传递带撇号的文本字符串,是否被截断?,javascript,php,Javascript,Php,我有一段代码,其中包含以下形式的行: <form> <input type='hidden' name='title' value='"+val.sources[0].title+"'> </form> 这将被插入到数据库中,但任何包含撇号的“标题”都将在撇号处被截断-参见示例: “我不想要它”-->结果是“我不想要” “大卫的车”-->结果是“大卫” 等等 我在处理端尝试了几次php str_替换,但都没有成功,例如: $title = str_repla

我有一段代码,其中包含以下形式的行:

<form>
<input type='hidden' name='title' value='"+val.sources[0].title+"'>
</form>
这将被插入到数据库中,但任何包含撇号的“标题”都将在撇号处被截断-参见示例:

“我不想要它”-->结果是“我不想要”

“大卫的车”-->结果是“大卫”

等等

我在处理端尝试了几次php str_替换,但都没有成功,例如:

$title = str_replace(''', '"', $_POST['title']);

数据似乎未正确发送,但不确定是否有任何建议

这是完整的块,并在下面插入:

$.each(playlist, function(index, val) {
        playlistHtml  += "<li class='playlist-item "+((val.sources[0].title).substring(0, 1)).toUpperCase()+"'><span class='jp-list-title' style='border-bottom:1px dotted #d2d2d2'>"
        +
        "<table border='0' style='width:100%;margin:8px 0px'><tr>"
        +
        "<td style='width:45px;text-align:center'>";
        // -----
        // ---- ICONS that preceed track -- YouTube, Vimeo, Audio, Movie etc. -----
        // -----
        if (val.sources[0].media == "0"){ // youtube
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fab fa-youtube' aria-hidden='true'></i></span>"
        }
        if (val.sources[0].media == "1"){ // vimeo
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fab fa-vimeo-square' aria-hidden='true'></i></span>"
        }
        if (val.sources[0].media == "2"){ // soundcloud
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fab fa-soundcloud' aria-hidden='true'></i></span>"
        }
        if (val.sources[0].media == "3"){ // MP3 audio link
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fas fa-file-audio' aria-hidden='true'></i></span>"
        }
        if (val.sources[0].media == "4"){ // MP4 video link
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fas fa-film' aria-hidden='true'></i></span>"
        }
        if (val.sources[0].media == "5"){  // radio link
            playlistHtml += "<span style='min-width:30px;text-align:center;color:#5fabec;font-size:20px'><i class='fas fa-microphone' aria-hidden='true'></i></span>"
        }

        playlistHtml  += "</td><td style='font-size:<?php echo $fontsize; ?>';padding:13px'><div class='playlist_abbrev'><span onclick='executeParent()'>"+val.sources[0].title+"&nbsp;&nbsp;<span style='color:#d2d2d2'>|</span>&nbsp;&nbsp;<span style='font-size:<?php echo $fontsize_artist; ?>'>"+val.sources[0].artist+"</span></div></td>"
        + /* TITLE -- ADD TO FAV */
        "<td style='font-size:<?php echo $fontsize; ?>';padding:13px'><form id='add Favorite' action='process_fav_add.php' method='post'><input type='hidden' name='active' value='1'><input type='hidden' name='mediatype' value='"+val.sources[0].media+"'><input type='hidden' name='title' value='"+val.sources[0].title+"'><input type='hidden' name='artist' value='"+val.sources[0].artist+"'><input type='hidden' name='source_url' value='"+val.sources[0].src+"'><input type='hidden' name='playlists' value='My-Favorites'><input type='hidden' name='user' value='<?php echo $id; ?>'><input type='hidden' name='playlist' value='<?php echo $playlist; ?>'><button class='playlist-favorite' id='sub'><i class='far fa-heart'></i></button></form></td>"
        "</tr></table></span></li>"
$。每个(播放列表、功能(索引、val){
playlishtml++“
  • ”+val.sources[0]。艺术家+“” +/*标题——添加到FAV*/ “'>您可以尝试:

    
    
    您可以尝试:


    有几个问题

  • 首先是通过一些jQuery代码将标题放置在
    input
    元素中的直接问题

    "....<input value='" + val.sources[0].title + "'>...."
    
    "....<input value='" + escapeHtmlAttribute(val.sources[0].title) + "'>...."
    
    这将使用适当的HTML实体对引号进行编码,并且还将避开符号,否则可能会被误解为HTML实体的开头

    因此,您的字符串将按如下方式构建:

    "....<input value='" + val.sources[0].title + "'>...."
    
    "....<input value='" + escapeHtmlAttribute(val.sources[0].title) + "'>...."
    
    …但最好不要注入任何字符串,而是使用预先准备好的语句。这让我想到以下几点:

  • 您正在使用的是
    mysql\uuu
    函数集,这些函数在PHP5.0中已被弃用,并且自PHP7以来不再受支持。您真的必须远离它们。现在就这样做。相反,应该使用or扩展。此外,您应该使用。这样,您就不再需要任何转义,也不会有任何SQL注入的风险。Please读取


  • 有几个问题

  • 首先是通过一些jQuery代码将标题放置在
    input
    元素中的直接问题

    "....<input value='" + val.sources[0].title + "'>...."
    
    "....<input value='" + escapeHtmlAttribute(val.sources[0].title) + "'>...."
    
    这将使用适当的HTML实体对引号进行编码,并且还将避开符号,否则可能会被误解为HTML实体的开头

    因此,您的字符串将按如下方式构建:

    "....<input value='" + val.sources[0].title + "'>...."
    
    "....<input value='" + escapeHtmlAttribute(val.sources[0].title) + "'>...."
    
    …但最好不要注入任何字符串,而是使用预先准备好的语句。这让我想到以下几点:

  • 您正在使用的是
    mysql\uuu
    函数集,这些函数在PHP5.0中已被弃用,并且自PHP7以来不再受支持。您真的必须远离它们。现在就这样做。相反,应该使用or扩展。此外,您应该使用。这样,您就不再需要任何转义,也不会有任何SQL注入的风险。Please读取


  • 您似乎正在使用不带参数的SQL insert语句插入到数据库中。使用参数可以避免必须更改您的值这是一种特殊的语法
    “+val.sources[0]。title+
    显示模板库的使用情况?如果是,了解模板库是什么将很有帮助。似乎发生的情况是,该值变为
    value=“text-up-to-the-quote”
    当文本值中有引号时,保留字符串的其余部分。很可能整个文本值没有到达服务器。显示
    insert
    语句您正在使用单引号来分隔HTML属性。发送到客户端的HTML将如下所示:
    value='I Don't Want'
    在e浏览器中,属性值在第二个
    '
    处结束,即
    值='i't Want It'
    “数据似乎未正确发送”您是否通过调试验证了这一点?不值得您检查接收端,而事实上,问题出在发送方端。您似乎正在使用不带参数的SQL insert语句插入到数据库中。使用参数可避免必须更改您的值这是一种特殊的语法
    “+val.sources[0]。title+”
    显示模板库的使用情况?如果是,了解模板库是什么将很有帮助。似乎发生的情况是,该值变为引号之前的
    value=“text”"
    当文本值中有引号时,保留字符串的其余部分。很可能整个文本值没有到达服务器。显示
    insert
    语句您正在使用单引号来分隔HTML属性。发送到客户端的HTML将如下所示:
    value='I Don't Want'
    在e浏览器中,属性值在第二个
    ”处结束,即
    值='i't Want'
    “数据似乎未正确发送”您是否通过调试验证了这一点?不值得检查接收端,而事实上,问题出在发送方。尝试了此方法(我这边运气不好)看我上面修改的代码(我这边运气不好)看我上面修改的代码