首页 > 解决方案 > 如何使用 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 错误,当服务器正在处理我的表单时,我该如何清理或使其安全?

标签: phpformssanitize

解决方案


我处理这个问题的方法是只将 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>';

您可以通过使用与字符串中相反的单引号或双引号来避免转义引号。


推荐阅读