php - 如何使用 PHP 在数据库中保存 HTML META 和 JavaScript?
问题描述
这不是重复的帖子,因为我使用 htmlspecialchars() 转义表单来清理提交的表单,并且来自 CodeIgniter 的活动记录正在转义所有引号。错误不是来自数据库,而是当我尝试发送表单时来自服务器的一个块。
我有一个表单,可以将数据提交到 PHP 页面,然后将其提交到数据库中。我的问题是我可能想要存储 Google Analytics 的脚本,或者例如一些需要从数据库自动生成的 HTML 元数据。
假设我想将此代码从 HTML 表单发送到 PHP 页面,然后插入到数据库中。
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-11111-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-111111-1');
</script>
我从服务器收到 403 错误,当服务器正在处理我的表单时,我该如何清理或使其安全?
解决方案
我处理这个问题的方法是只将 Google UA 保存到数据库并将脚本硬编码到文件中。由于要在每个页面上调用脚本,因此可以轻松地将其放置在模板系统中。
例子:
$gUA = 'UA-11111-1';
echo '<script async src="https://www.googletagmanager.com/gtag/js?id='.$gUA.'"></script>';
echo '<script>';
echo 'window.dataLayer = window.dataLayer || [];';
echo 'function gtag(){dataLayer.push(arguments);}';
echo "gtag('js', new Date());";
echo "gtag('config', '".$gUA."');";
echo '</script>';
您可以通过使用与字符串中相反的单引号或双引号来避免转义引号。
推荐阅读
- node.js - FCM向nodeJS Google Cloud Function中的多个设备(不同用户)sendMulticast与sendToDevice推送通知?
- javascript - Analytics 被浏览器阻止时的出站链接
- mysql - JSON全文搜索mysql
- reactjs - 如何在激活联系表单字段的管理对话框中使某些值成为默认值并启用和其他没有默认值和禁用
- sql - 上次观察结转查询(SELECT from-between 不完整的时间序列)
- c# - 在 C# 中动态更改数据成员的名称
- angular - Angular 组件和服务是否应该始终避免使用 setInterval(或 rxjs 计时器)?
- c++ - 为什么 NaCL Crypto Library 源代码会引用代码中没有的头文件?
- python-3.x - 在我自己的排序键中使用元组时出现语法错误
- c++ - if 语句未正确执行