我需要在 drupal 7 中使用 entityforms 创建的表单添加验证码。我找不到有关如何执行此操作的任何信息。谁能告诉我这是怎么做到的?
4 回答
- 安装模块https://drupal.org/project/captcha
- 转到实体形式。
- 在萤火虫视图表单源。并从字段中复制值:
<input type="hidden" name="form_id" value="contact_entityform_edit_form">
- 从早期复制的值转到 /admin/config/people/captcha 和 FORM_ID。
试试这个模块,它会工作......
另一个有用的模块是Spamicide模块。
Spamicide 为每个表单添加一个输入字段,然后用 css 隐藏它,当垃圾邮件机器人填写该字段时,该表单被丢弃。
您可以在 Drupal 中的每个表单上打开此功能。
将验证码添加到 Drupal 中的Entityform 类型:
安装或启用贡献的验证码模块。
确定您希望将 CAPTCHA 添加到哪些 Entityform 类型:
管理 > 结构 > 实体形式类型
admin/structure/entityform_types
从 Entityform Types 列表中,复制 Entityform Type 的机器名称(例如
contact_us
)。配置验证码模块:
管理员 > 配置 > 人员 > 验证码
admin/config/people/captcha
在表单保护字段集中,添加实体表单类型的机器名称*作为表单 ID 值。
*注意:Captcha 模块所期望的 Form ID 是 Entityform Type 机器名加上 text 字符串
_entityform_edit_form
。例如,如果您的 Entityform Type 机器名称是
contact_us
,则完整的表单 ID 将是contact_us_entityform_edit_form
。您可以通过查看 Entityform 类型的 HTML 源代码并交叉引用表单的 ID 属性来验证这一点:
<form class="entityform" id="contact-us-entityform-edit-form" ...>
请记住,实际值已将连字符替换为下划线,这在 Drupal 中很常见。
选择适当的挑战类型或使用默认值。
保存验证码配置更改。
要验证 CAPTCHA 是否已成功添加,请打开私人浏览会话(例如 Chrome 隐身窗口)并查看 Entityform 类型,或者在退出 Drupal 时查看表单。