我正在使用drupal 6。
似乎权限页面无法保存太多设置。
我尝试保存权限设置,但它没有保存到数据库中。我发现这是由于“字段太多”。(使用内容权限模块)。如果我取消选中某些字段,然后检查较小的字段,则会保存权限。
例如,如果我取消选中 2 个复选框,然后选中一个复选框,则会保存权限。
有人知道权限页面用于将结果插入数据库的功能吗?
我的 php 内存限制是 256M。
我正在使用drupal 6。
似乎权限页面无法保存太多设置。
我尝试保存权限设置,但它没有保存到数据库中。我发现这是由于“字段太多”。(使用内容权限模块)。如果我取消选中某些字段,然后检查较小的字段,则会保存权限。
例如,如果我取消选中 2 个复选框,然后选中一个复选框,则会保存权限。
有人知道权限页面用于将结果插入数据库的功能吗?
我的 php 内存限制是 256M。
您需要调整 php.ini 中的 max_input_vars。通常的默认值是 1000,但是有很多模块,Drupal 权限页面很容易超过这个。如果您有权访问 php.ini 并重新启动 apache,只需添加另一个零并将其设为 10000。php.ini 文件的位置取决于您的服务器配置。
我遇到了同样的问题,错误日志中没有错误,这为我解决了这个问题。
您在这里遇到的问题有一个很好的解释:http: //2bits.com/drupal/drupal-not-saving-admin-pages-large-number-input-fields.html
改变 db 表的大小?听起来像它的截断。
将权限保存在数据库中的函数是user_admin_perm_submit()。
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();
}