如何仅允许包含指定关键词的Joomla Convert Forms表单提交
解决方案:修改Convert Forms自定义PHP代码实现仅允许指定关键词提交
把原来的禁用词拦截逻辑改成允许词验证逻辑只需要调整判断方向,修改后的代码如下:
// 定义允许提交的关键词列表 $allowed_words = [ 'apple', 'banana', 'orange' ]; // 指定要检查的表单字段名称(和你表单里的字段名保持一致) $field_name = 'text'; // 验证失败时的提示信息 $error_message = '请输入指定的关键词才能提交表单。'; // 标记是否匹配到允许的关键词 $is_valid = false; // 遍历关键词列表,检查用户输入是否包含其中任意一个 foreach($allowed_words as $word) { // stripos不区分大小写,若需区分可替换为strpos if (stripos($post[$field_name], $word) !== false) { $is_valid = true; break; // 找到匹配项后直接终止循环,提升效率 } } // 若未匹配到任何允许关键词,阻止表单提交 if (!$is_valid) { throw new Exception($error_message); }
额外说明
- 如果需要严格完全匹配(用户输入必须和关键词完全一致,不能只是包含),可以将判断条件替换为:
// 忽略大小写和前后空格的完全匹配 if (trim(strtolower($post[$field_name])) === strtolower($word)) - 记得把
$allowed_words里的内容替换成你实际需要的关键词,$field_name要和表单中对应字段的名称完全一致。
内容的提问来源于stack exchange,提问作者burf
相关产品推荐
相关产品推荐

