当前位置:  开发笔记 > 数据库 > 正文

drupal验证表格

如何解决《drupal验证表格》经验,为你挑选了1个好方法。

我想在将表单保存到数据库之前验证表单的输入,以防止Sql注入和XSS.

我不想直接修改模块的代码,所以我创建了一个自定义模块来做这种事情,但我不确定如何使用#validate元素来调用验证函数.

在我的自定义模块中,我有这个函数实现了这个逻辑:

function mymodule_form_alter(&$form, $form_state, $form_id) {

  switch ($form_id) {
    case 'myform':
      drupal_set_message('this message is printed :D');
      $form['#validate'] = array('my_validation_function');
    break;
  }        
}

function my_validation_function($form, &$form_state) {

  drupal_set_message('not printed :(');
  watchdog('not printed :___(', 'not printed :___(');

}

我不确切知道它是如何工作的但是当我提交表单时似乎从未调用过第二个函数.

编辑(解决方案):

我终于找到了验证放在模块中的位置:

$form['mod_name']['submit']['#validate'][] = 'my_validation_function';

我认为只要添加表单['#validify']就可以使用$ form变量上的内容了,但是如果你没有将#validate元素放在预期的地方,它似乎取决于模块的实现.



1> Simon..:

小心替换#validate键,因为您将替换之前添加的任何其他验证器.

最好将你的功能附加到它上面;

$form['#validate'][] = 'my_validation_function';

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有