当前位置:首页 > 行业动态 > 正文

如何修改织梦DedeCms留言本以在访客访问时隐藏隐私信息?

要实现织梦DedeCms留言本在访客访问时隐藏隐私信息,可以通过修改模板文件或使用插件来实现。

在织梦DedeCms中,留言本功能允许访客留下反馈信息,但出于隐私保护的考虑,我们可能需要对某些敏感信息进行隐藏处理,本文将详细介绍如何在织梦DedeCms留言本中实现这一功能,包括修改模板文件、添加过滤规则等步骤。

一、修改模板文件

我们需要找到留言本的模板文件,在织梦DedeCms中,留言本的模板文件通常位于/templets/plus/feedback.htm,打开这个文件,你会看到如下代码:

<div >
    <form action="{dede:global.cfg_phpurl}/plus/feedback.php" method="post" name="form1" id="form1">
        <input type="hidden" name="action" value="post" />
        <ul>
            <li>
                <label for="name">姓名:</label>
                <input type="text" name="name" id="name" value="{$name}" />
            </li>
            <li>
                <label for="email">电子邮件:</label>
                <input type="text" name="email" id="email" value="{$email}" />
            </li>
            <li>
                <label for="content">内容:</label>
                <textarea name="content" id="content" rows="5" cols="30">{$content}</textarea>
            </li>
            <li>
                <input type="submit" value="提交" />
            </li>
        </ul>
    </form>
</div>

为了隐藏访客的隐私信息,我们可以在表单提交后进行处理,就是在feedback.php文件中添加过滤规则。

二、添加过滤规则

我们需要找到/plus/feedback.php文件,在这个文件中,我们需要添加过滤规则来隐藏访客的隐私信息,具体操作如下:

1、打开feedback.php文件,找到以下代码:

if($dopost=='post'){
    $name = trim($_POST['name']);
    $email = trim($_POST['email']);
    $content = trim($_POST['content']);
    // 其他代码...
}

2、在上述代码之后,添加以下过滤规则:

function hidePrivacyInfo($info){
    if(!empty($info)){
        $info = str_replace('@', '[at]', $info); // 隐藏邮箱地址中的'@'符号
        $info = str_replace('.com', '[dot]com', $info); // 隐藏邮箱地址中的'.com'部分
        $info = preg_replace('/d{3,}/', '***', $info); // 隐藏连续的数字(如电话号码)
        return $info;
    }
    return '';
}
if($dopost=='post'){
    $name = trim($_POST['name']);
    $email = trim($_POST['email']);
    $content = trim($_POST['content']);
    // 隐藏隐私信息
    $name = hidePrivacyInfo($name);
    $email = hidePrivacyInfo($email);
    $content = hidePrivacyInfo($content);
    // 其他代码...
}

通过以上步骤,我们已经成功实现了在留言本中隐藏访客隐私信息的功能,当访客提交留言时,系统会自动对其输入的信息进行处理,以保护其隐私。

三、测试功能是否正常工作

为了确保我们的修改生效,需要进行测试,请按照以下步骤进行:

1、访问留言本页面,尝试提交一条包含敏感信息的留言,使用真实的姓名、电子邮件地址和电话号码。

2、提交后,查看留言是否已正确显示在前台页面上,你应该看不到真实的姓名、电子邮件地址和电话号码,而是被替换为相应的占位符。

3、如果一切正常,说明我们的修改已经生效,否则,请检查代码是否有误或遗漏。

四、注意事项与常见问题解答

如何恢复显示原始的隐私信息?

答:如果你需要恢复显示原始的隐私信息,可以将之前添加的过滤规则注释掉或者删除即可,具体操作如下:

// function hidePrivacyInfo($info){ ... }
// if($dopost=='post'){ ... }

这样,当访客提交留言时,系统将不再对其输入的信息进行处理,而是直接显示原始内容。

如何处理其他类型的敏感信息?

答:除了上述提到的电子邮件地址和电话号码外,你可能还需要考虑其他类型的敏感信息,如身份证号、银行卡号等,针对这些情况,你可以根据实际需求扩展hidePrivacyInfo函数中的正则表达式和替换逻辑,对于身份证号,可以使用以下正则表达式进行匹配和替换:

$info = preg_replace('/d{15}(d{2})?/', '*********************', $info); // 隐藏身份证号
0