如何为WordPress页面设置密码保护并通过PHP函数正则验证密码
嘿,我完全get你的需求——用基于自家猫咪名字的简单正则来做WordPress页面的密码验证,虽然你清楚这种方式安全性不高,但用来保护家庭照片足够对吧?下面给你一个落地的实现方案,一步步来:
实现基于猫咪姓名的WordPress页面密码验证
1. 编写自定义密码验证函数
首先我们写一个PHP函数,核心是用正则表达式匹配猫咪姓名的多种合规形式(比如大小写变化、加简单后缀/前缀)。你可以根据自家猫咪的名字和想要的规则灵活调整正则:
function validate_cat_photo_password($submitted_password) { // 替换成你家猫咪的真实姓名,比如"Orange" $cat_name = 'Orange'; // 构建正则规则:这里示例匹配大小写不敏感,允许末尾加0-2位数字或一个下划线 // 你可以按需修改,比如允许前缀(如"my-")、更多特殊字符等 $safe_cat_name = preg_quote($cat_name, '/'); // 转义特殊字符,避免正则报错 $pattern = '/^' . $safe_cat_name . '([0-9]{0,2}|_)?$/i'; // 执行正则匹配,返回验证结果 return preg_match($pattern, $submitted_password) === 1; }
正则规则说明(可自定义)
i标记:大小写不敏感,比如"orange"、"ORANGE"、"OrAnGe"都能匹配([0-9]{0,2}|_)?:可选后缀,允许加0到2位数字,或者一个下划线- 如果想加前缀,比如允许"my-Orange",可以把正则改成:
/^(my-)?' . $safe_cat_name . '([0-9]{0,2})?$/i
2. 在WordPress页面中集成验证逻辑
接下来把验证逻辑和页面内容结合起来。你可以创建一个自定义页面模板,或者把代码添加到现有页面的模板文件中:
// 处理密码提交逻辑 if (isset($_POST['cat_photo_password'])) { // 清理用户输入,避免安全风险 $submitted_pw = sanitize_text_field($_POST['cat_photo_password']); if (validate_cat_photo_password($submitted_pw)) { // 验证通过,显示家庭照片内容 ?> <div class="cat-photos"> <h2>我家猫咪的可爱瞬间 🐱</h2> <!-- 这里放你的照片HTML,或者调用WordPress媒体库的图片 --> <img src="/wp-content/uploads/2024/cat1.jpg" alt="猫咪照片1"> <img src="/wp-content/uploads/2024/cat2.jpg" alt="猫咪照片2"> </div> <?php } else { // 验证失败,提示错误并重新显示表单 echo '<p style="color: #dc3232; font-weight: bold;">密码不对哦,请重试!</p>'; show_cat_password_form(); } } else { // 首次访问页面,显示密码输入表单 show_cat_password_form(); } // 生成密码输入表单的辅助函数 function show_cat_password_form() { ?> <form method="post" class="cat-password-form"> <label for="cat_photo_password">输入密码查看照片:</label> <input type="password" id="cat_photo_password" name="cat_photo_password" required> <button type="submit" style="margin-left: 10px;">确认查看</button> </form> <?php }
3. 注意事项
- 正如你所知,这种验证方式安全性较低,只适合非敏感的家庭内容,别用在涉及隐私或重要数据的场景
- 代码可以放在你的主题
functions.php文件中,或者创建一个简单的自定义插件,这样主题更新时不会丢失代码 - 如果想稍微提升一点安全性,可以给猫咪姓名加固定组合,比如名字+生日后两位,正则改成
/^' . $safe_cat_name . '\d{2}$/i
内容的提问来源于stack exchange,提问作者e40
相关产品推荐
相关产品推荐

