php - 带有从 PHP 代码打印的单引号的 Javascript 字符串

标签 php javascript escaping

我有以下从 PHP 打印的脚本。如果有人在描述中使用单引号,则表明缺少 javascript 错误;因为它认为字符串终止了。

print   "<script type=\"text/javascript\">\n
    var Obj = new Array();\n
     Obj.title        = '{$_REQUEST['title']}'; 
     Obj.description     = '{$_REQUEST['description']}';
     </script>";

表单在此页面上发帖,标题和描述来自文本框。此外,我无法在 {$_REQUEST['title']} 周围加上双引号,因为它显示语法错误。我该如何处理?

最佳答案

一种更干净(和安全)的方式(imo):

<?php 
//code here

$title = addslashes(strip_tags($_REQUEST['title']));
$description = addslashes(strip_tags($_REQUEST['description']));
?>
<script type="text/javascript">
 var Obj = new Array();
 Obj.title = '<?php echo $title?>'; 
 Obj.description = '<?php echo $description?>';
</script>

关于php - 带有从 PHP 代码打印的单引号的 Javascript 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6685794/

相关文章:

ruby-on-rails - Rails escape_javascript通过转义单引号来创建无效的JSON

php - 网址解析功能

javascript - 将 $stateParams 和 $state 注入(inject) Jasmine Angular js 测试变得未定义

javascript - 谷歌图表,每个条形不同的颜色

Javascript 菜单加粗选中,取消加粗其余部分

postgresql - 在没有 PreparedStatement 的情况下如何正确转义字符串?

javascript - 如何在 thymeleaf 和 javascript 代码中转义单引号

php - 将 MySQL 数据库从本地 MAMP 服务器移动到主机服务器

PHP 选择特定行

php - Codeigniter:将 form_input 插入 sql 表