Drupal 未保存对用户权限的更改

Drupal 未保存对用户权限的更改,drupal,drupal-6,drupal-modules,Drupal,Drupal 6,Drupal Modules,我正在使用Drupal6 权限页似乎无法保存太多设置 我试图保存权限设置,但它只是没有保存到数据库。 我发现这是因为“字段太多”。(使用内容权限模块)。 如果我取消选中某些字段,然后选中较小的字段,权限将被保存 例如,如果我取消选中2个复选框,然后选中一个复选框,权限将被保存 有人知道权限页用于将结果插入数据库的功能吗 我的php内存限制是256M。是否更改db表的大小?听起来像是被截断了。在数据库中保存权限的函数是 您需要在php.ini中调整max_input_变量。通常的默认值是1000,

我正在使用Drupal6

权限页似乎无法保存太多设置

我试图保存权限设置,但它只是没有保存到数据库。 我发现这是因为“字段太多”。(使用内容权限模块)。 如果我取消选中某些字段,然后选中较小的字段,权限将被保存

例如,如果我取消选中2个复选框,然后选中一个复选框,权限将被保存

有人知道权限页用于将结果插入数据库的功能吗


我的php内存限制是256M。

是否更改db表的大小?听起来像是被截断了。

在数据库中保存权限的函数是


您需要在php.ini中调整max_input_变量。通常的默认值是1000,但是有很多模块,Drupal权限页面很容易掩盖这一点。如果您可以访问php.ini并重新启动apache,只需再添加一个0并将其设为10000。php.ini文件的位置取决于您的服务器配置


我也遇到了同样的问题,错误日志中没有错误,这为我解决了问题。

这里有一个很好的解释:如何做到这一点?顺便说一下,我已经转储了整个权限表,它只有16090字节,在哪里可以检查表的大小。my db是mysqlChange它的类型为long text,在ssh或HeidiSQL guidrupal中使用类似mysql的数据库客户端,权限类型的默认类型是longtype。
function user_admin_perm_submit($form, &$form_state) {
  // Save permissions:
  $result = db_query('SELECT * FROM {role}');
  while ($role = db_fetch_object($result)) {
    if (isset($form_state['values'][$role->rid])) {
      // Delete, so if we clear every checkbox we reset that role;
      // otherwise permissions are active and denied everywhere.
      db_query('DELETE FROM {permission} WHERE rid = %d', $role->rid);
      $form_state['values'][$role->rid] = array_filter($form_state['values'][$role->rid]);
      if (count($form_state['values'][$role->rid])) {
        db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", $role->rid, implode(', ', array_keys($form_state['values'][$role->rid])));
      }
    }
  }

  drupal_set_message(t('The changes have been saved.'));

  // Clear the cached pages
  cache_clear_all();
}