如何在我的drupal注册Web服务中处理验证码?

时间:2015-01-13 15:47:23

标签: web-services drupal drupal-7

我通过Drupal 7上的服务模块创建了一项服务,允许在网站上注册。尝试一下,我收到一条消息,说验证码还没有填写。我发送了我的请求所有必需的数据,如姓名,密码或电子邮件,但由于显而易见的原因,我无法发送验证码。 现在,更简单的解决方案是在我的网站上禁用验证码,但我真的不想这样做,因为必须为正常的“人类”启用验证码。注册

那么,有哪种方法可以禁用来自Web服务的请求的验证码?或者其他任何正确的方法,因为我不知道如何正确使用网络服务,所以我想我做了一些概念上的错误......

1 个答案:

答案 0 :(得分:2)

您可以使用hook_form_alter()从表单中删除验证码元素。例如,在custom Drupal module中试试这个:

<?php
function my_module_form_alter(&$form, &$form_state, $form_id) {
  //dpm($form);
  // Disable captcha on Services user register form.
  if ($form_id == 'user_register_form') {
    if (arg(0) == 'my_services_endpoint_path') {
      unset($form['captcha']);
    }
  }
}
?>

使用devel module's dpm()函数检查表单结构并找到元素的名称。以上示例适用于captcha module。如果您使用的是Mollom,我认为您可以使用unset($form['mollom']);